MongoDB问题 -------------------------------------插入不重复数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao_5352269/article/details/86512119

1.2 upsert

upsert可以指定如果数据存在就更新,不存在就创建数据。

> db.users.find({"name":"yoona"});
> 
> db.users.update({"name":"yoona"}, {name : "yoona", age:25, "school" : "xidian", type:1,  favorites: {artist : "Noguchi", food : "nougat"}, finished : [4, 5] }, {upsert:false});
WriteResult({ "nMatched" : 0, "nUpserted" : 0, "nModified" : 0 })

更新操作之前我们没有查询到yoona的任何信息,然后我们对其进行更新操作,并且upsert设置为false,表示如果更新的数据不存在,不走任何操作。更新之后,我们再次查询一下:

> db.users.find({"name":"yoona"});
>

再次查询还是没有找到相应数据。我们设置upsert为true,表示如果数据存在则更新,如果不存在则创建该数据:

> db.users.update({"name":"yoona"}, {name : "yoona", age:25, "school" : "xidian", type:1,  favorites: {artist : "Noguchi", food : "nougat"}, finished : [4, 5] }, {upsert:true});
WriteResult({
    "nMatched" : 0,
    "nUpserted" : 1,
    "nModified" : 0,
    "_id" : ObjectId("57c3ad26d2cc0133a95bc583")
})
> 
> db.users.find({"name":"yoona"});
{ "_id" : ObjectId("57c3ad26d2cc0133a95bc583"), "name" : "yoona", "age" : 25, "school" : "xidian", "type" : 1, "favorites" : { "artist" : "Noguchi", "food" : "nougat" }, "finished" : [ 4, 5 ] }

参考:https://www.cnblogs.com/jokerjason/p/7552667.html 

猜你喜欢

转载自blog.csdn.net/zhao_5352269/article/details/86512119