MongoDB数据库的基本操作

Posted AustinJoe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB数据库的基本操作相关的知识,希望对你有一定的参考价值。

介绍

  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

  • MongoDB中将数据存储为一个文档,文档由键值对(key=>value)组成,MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

基本概念

  • 和关系型数据库一样,MongoDB存在数据库的概念,一个MongoDB可以创建多个数据库。

  • 多个键及其关联的值有序地放置在一起就是文档,文档时MongoDB中数据的基本单元,是MongoDB的核心概念,很类似关系数据库中的行(记录)。

  • 集合就是一组文档的组合,集合可以被看作关系型数据库中的表。

RDBMS(关系型数据库管理系统) MongoDB
Database(数据库) Database(数据库)
Table(表) Collection(集合)
Record(记录) Document(文档)

库级操作

use DATABASE            #切换/创建库        
show dbs                #查看所有数据库(空库不会显示)
db.dropDatabase()        #删除当前数据库
db                        #查看当前所在库

集合操作

db.createCollection(name, options)    #创建集合   用引号引起来

show collections                #查看当前数据库的集合

db.集合名称.drop()                #删除集合

文档操作

插入

db.集合名称.insert(document)    
#插入文档,    集合不存在会自动创建, 不能插入重复id的数
#_id 是12个字节十六进制数在一个集合的每个文档是唯一的。

db.student.insert({name:句号})
db.student.insert({name:句号, age:18})

db.student.insert({_id:1, name:句号, age:18})


db.student.insert([
    {name:juhao, sex:, age:18},
    {name:nanbei, sex:, age:19},
    {name:budong, sex:, age:20},
])

查询

db.集合名称.find()                #查询所有
db.集合名称.find().pretty()        #结构化显示

db.集合.find({name:10}).pretty()            where name = 10
db.集合.find({name:{$ne:10} }).pretty()        where name != 10
db.集合.find({name:{$gt:10} }).pretty()        where name > 10
db.集合.find({name:{$lt:10} }).pretty()        where name < 10
#后面加个e就是加等于
    


#and逻辑
{$and:[{expression1}, {expression1}, ...]   }
#or逻辑
{$or:[{expression1}, {expression1}, ...]   }


#where sex=‘男‘ and age > 18
db.table.find({
    $and:[
        {sex:}, {age:{$gt:18}}
    ]
})


#where sex=‘女‘ or age =18
db.table.find({
    $or:[
        {sex:}, {age:18}
    ]
})

查询条件

and条件   {$and:[{expression1},{expression2},{expression3}......]}

or条件      {$or:[{expression1},{expression2},{expression3}......]}

and和or的混用       db.table.find({$or:[{$and:[{sex:‘女‘}, {age:18}]},{$and:[{sex:‘男‘}, {age:{$gt:18}}]}]})

操作符 描述
$ne 不等于
$gt 大于
$lt 小于
$gte 大于等于
$lte 小于等于

 

更新

db.table.insert({
    name: juhao, 
    age: 18,
    height: 180,
    sex:,
    virtue: [, , ],
})

db.table.update({sex:},[{age:20},{height:180}])    
#更新第一条找到的文档全部值  

db.table.update({sex:}, {$set:{age:666, agee:6666}}) 
#修改第一条找到的文档, key不存在就添加

db.table.update({sex:}, {$set:{sex:}}, {multi:true})    #更新满足条件的全部数据


#前面查询的条件也可以用在这里, wherer sex=男 and age>18
db.table.update(
    {$and:[{sex:}, {age:{$gt:18}}]}, 
    {$set:{age:666}},
)

 

删除

db.集合名称.remove( <query>, <justOne> )
db.table.remove({age:18})        #删除所有满足条件的
db.table.remove({sex:}, {justOne:true})    #删除一条

#where sex=‘男‘ and age>18
db.table.remove({
    $and:[
        {sex:}, {age:{$gt:18}}
    ]
})

 

以上是关于MongoDB数据库的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

mongodb关联查询

无法在 MongoDB(猫鼬)文档中追加数组

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

VSCode自定义代码片段——git命令操作一个完整流程

Springboot 整合mongodb以及mongo数据操作工具类代码实现

python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)