本章节中我们将向大家介绍如何将数据插入到MongoDB的集合中。
文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
插入文档
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
1 | db.COLLECTION_NAME.insert(document) |
1 | > document = ({"name": "simon", "age": 20, "interests": ["badminton", "swimming", "music"]}) |
插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
指定_id字段是{"_id": ObjectId("5c5be011dd377f0cd58338ae")}
更新文档
update() 方法
update() 方法用于更新已存在的文档。语法格式如下:
1 | db.collection.update( |
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
save() 方法
save() 方法通过传入的文档来替换已有文档。语法格式如下:
1 | db.collection.save( |
参数说明:
document : 文档数据。
writeConcern :可选,抛出异常的级别。
删除文档
1 | db.collection.remove( |
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。
如删除集合下全部文档:
1 | db.inventory.deleteMany({}) |
删除 status 等于 A 的全部文档:
1 | db.inventory.deleteMany({ status : "A" }) |
删除 status 等于 D 的一个文档:
1 | db.inventory.deleteOne( { status: "D" } ) |