MongoDB的CRUD操作

CRUD就是MongoDB的“增删改查”操作,是对数据库的四种常用操作:创建(create),读取(read),更新(update),删除(delete)。

Create Operations

创建或插入操作将新文档添加到集合中。如果集合当前不存在,则插入操作将创建该集合。

创建操作有三种方法:

db.collection.insertOne():将单个文档插入到一个集合中。

示例:

db.student.insertOne({name:"张三",age:18,sex:"",hobby:"游泳"})

db.collection.insertMany():将多个文档插入到一个集合中。

db.student.insertMany([{name:"李四",age:24,sex:"",hobby:"编程"},
                      {name:"王五",age:17,sex:"",hobby:"看剧"},
                      {name:"赵六",age:20,sex:"",hobby:"游泳"}  
                      ])

db.collection.insert():将单个文档或多个文档插入到集合中。这个方法是insertOne()和insertMany()两种方法的综合。

Read Documents

读取操作从数据库中查询文档。

基本格式:

db.collection.find({})

{}中传入要查询的条件,如果{}中什么都不加,默认查询集合中所有文档。

如果要查询性别为“男”的所有同学,则使用以下命令:

db.student.find({sex:""})

查询同时符合多个条件的,使用如下格式既可:

db.collection.find({条件一,条件二,条件三…})

假如要查询喜欢游泳的女生,条件一是喜欢游泳,条件二是女生,使用以下命令:

db.student.find({hobby:"游泳",sex:""})

但是如果查询满足条件一或者是条件二(满足任意一个条件)的时候,就要使用逻辑查询操作符$or了:

假如要查询年龄大于20或者是喜欢游泳的同学,使用以下命令:

db.student.find({$or:[{age:{$gt:20}},{hobby:"游泳"}]})

这里又使用了一个比较查询操作符$gt,意思是大于,关于操作符,可以查询MongoDB手册:http://www.mongodb.org.cn/manual/

如果只查询一个条件,但是这个条件既可以满足值一,又可以满足值二。

比如要查询兴趣既可以是游泳又可以是看剧的同学,那么要使用以下命令:

db.student.find({hobby:{$in:["游泳","看剧"]}})

没错,这样的查询要用$in操作符,而不是$or操作符。

Update Documents

虽然更新操作有db.collection.updateOne()以及db.collection.updateMany();但是建议使用db.collection.update()即可;

标准格式:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>
   }
)

query是更新的选择标准,指定要更新哪一部分的内容。与find()中的查询条件一样。

update是要更新的内容。

下面的对象里是可选项,

upsert:可选的。如果设置为true,则在没有文档匹配查询条件时创建一个新文档。默认值为false,当未找到匹配项时不插入新文档。

multi:可选的。如果设置为true,则更新符合查询条件的多个文档。如果设置为false,则更新一个文档。默认值是false。

假如把所有hobby是“游泳”的同学的年龄改为28(虽然这是不合常理的),要使用以下命令:

db.student.update({hobby:"游泳"},{$set:{age:28}},{multi:true})

查询条件是hobby为游泳的同学,查到后,使用字段更新操作符$set将这些同学的age改为28,如果不传multi的话,默认值为false,只更改查询到的第一个同学,传入true更改所有同学。

Delete Documents

若删除集合中所有文档,只需传入以下命令即可:

db.inventory.deleteMany({})

删除多个文档或者删除一个文档分别用以下方法:

db.collection.deleteMany()
db.collection.deleteOne()

()中传入要删除的文档的查询条件即可

 

 

猜你喜欢

转载自www.cnblogs.com/hushiyun/p/9053404.html