Mongodb:只能插入不存在的数据吗?

时间:2017-11-24 15:01:33

标签: python mongodb insert exists

我有一个示例数据,例如:

data = {'tag':'ball','color':'red'}

我想将它插入我的收藏中。但如果它有相同的,则不要插入。
我可以在python中这样做:

if not collection.find_one({data}):
    collection.insert(data)

或者,我可以通过更新来完成:

collection.update(data,data,upsert=True)

但是,我的问题是:每次天气'更新'写入数据?

在这两种方法中,他们搜索重复数据的相同时间,但在第一种方式中,只有在不存在时才写入。

第二种方式,是否数据不存在,插入一个。如果数据存在,请更新一个。数据库会在所有情况下写出来吗?

那么,哪种方法更好?为什么?

1 个答案:

答案 0 :(得分:0)

我最近遇到过一种情况,即如果记录不存在,我只想写入数据库。在这种情况下,您的第一种方法更好。

对于第二种方式,数据库将在所有情况下编写。但是,如果您想要更新某些字段,可以尝试$ setOnInsert,如下所述:https://docs.mongodb.com/manual/reference/operator/update/setOnInsert/