插入文档

在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()。

京ICP备14008139号-1