mongodb insert和update及save用法以及区别

2018年04月13日 09:26 | 6650次浏览 作者原创 版权保护

区别

若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。

如:

已存在数据:  {_id : 1, " name " : " n1 " },再次进行插入操作时,

insert({_id : 1, " name " : " n2 " })    会报主键重复的错误提示

save({ _id : 1, " name " : " n2 " })     会把 n1 修改为  n2  。

相同点:

若新增的数据中没有主键时,会增加一条记录。

已存在数据:  { _id : 1, " name " : " n1 " },再次进行插入操作时,

insert({ " name " : " n2 " })    插入的数据因为没有主键,所以会增加一条数据

save({  " name " : " n2 " })   增加一条数据。


MongoDB插入数据的3种方法

在MongoDB中,db.collection.insert()方法添加一个新文档到集合中。另外,db.collection.update()方法和db.collection.save()方法也能通过upsert操作添加新文档。upsert操作执行更新现有文档或者当文档不存在时插入一个新文档。

insert()方法:

    下面是在inventory集合中插入一个三个字段的文档:

实现代码:

db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )

在实示例中,文档有一个用户指定的值为10的_id字段,这个值必须在inventory集合中唯一。


update()方法:

    调用update()方法使用upsert标志创建一个新文档当没有匹配查询条件的文档时。下面的例子当inventory集合中没有包含{type:"books",item:"journal"}的文档时创建一个新文档:

实现代码:

db.inventory.update(
                         { type: "book", item : "journal" },
                         { $set :     { qty: 10 } },
                         { upsert :true     }
                )

MongoDB添加_id字段和分配一个唯一的ObjectId作为它的值。新文档包含来自查询<query>条件的item和type字段,和来自更新<update>参数的qty字段:

{ "_id" : ObjectId("51e8636953dbe31d5f34a38a"), "item" : "journal", "qty" : 10, "type" : "book" }


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 }



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/783.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程