插入文档
在MongoDB中,b.collection.insert()方法添加新文档到一个集合。此外,无论是db.collection.update()方法和db.collection.save()方法也可以通过称为更新插入的操作添加新文档。更新插入既是执行一个已存在的文档更新,也是在修改文档不存在是插入一个新文档的操作。
本教程提供了使用中mongo命令行的三种方法插入操作的例子。
一、用insert()方法插入一个文档
下面的语句插入带有三个字段的文档到集合inventory:
db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
在该示例中,文档有一个用户指定的值为10的_id字段。该值必须在集合inventory中是唯一的。
更多示例,请参阅insert()。
二、用update()方法插入一个文档
调用update()方法的更新插入标志,如果没有文件匹配更新的查询条件则创建一个新的文档。 [1]
下面的示例创建一个新的文档,如果在inventory集合中没有包含{ type: "books", item : "journal" }的文档:
db.inventory.update(
{ type: "book", item : "journal" },
{ $set : { qty: 10 } },
{ upsert : true }
)
MongoDB中增加了_id字段,并指定其值作为唯一的ObjectId。从查询条件看新文档包括item和type字段,从更新参数来看包括qty字段。
{ "_id" : ObjectId("51e8636953dbe31d5f34a38a"), "item" : "journal", "qty" : 10, "type" : "book" }
更多示例,参考update()。
[1]
2.2之前的版本,在mongo命令行,在update()方法里您可以指定upsert和multi选项()方法作为位置布尔选项。
三、用save()方法插入一个文档
用save()方法插入一个文档,通过该方法,一个文档不包括_id字段或者包括一个_id字段的文档在集合中不存在。
下面的示例在inventory集合创建新的文档:
db.inventory.save( { type: "book", item: "notebook", qty: 40 } )
MongoDB中增加了_id字段,并指定其值作为唯一的ObjectId。
{ "_id" : ObjectId("51e866e48737f72b32ae4fbc"), "type" : "book", "item" : "notebook", "qty" : 40 }
更多示例,参考save()。