Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在MongoDB上使用$push更新数组时避免重复值_Python_Mongodb_Mongodb Query_Pymongo - Fatal编程技术网

Python 在MongoDB上使用$push更新数组时避免重复值

Python 在MongoDB上使用$push更新数组时避免重复值,python,mongodb,mongodb-query,pymongo,Python,Mongodb,Mongodb Query,Pymongo,我想使用Python将一些值推送到数组中。 也许下次我更新数组时,它会插入一些存在的值,因此它会得到一些重复的值。 我想知道是否存在避免重复值的方法。 我应该使用db.collection.find()来确定是否应该插入 db.graph.insert_one({"user_id": a.url}, ) for j in a.followers: db.graph.update({"user_id": a.url}, {"$push": {"following": j.url}}) 我

我想使用Python将一些值推送到数组中。
也许下次我更新数组时,它会插入一些存在的值,因此它会得到一些重复的值。
我想知道是否存在避免重复值的方法。
我应该使用db.collection.find()来确定是否应该插入

db.graph.insert_one({"user_id": a.url}, )
for j in a.followers:
    db.graph.update({"user_id": a.url}, {"$push": {"following": j.url}})

我认为,您可以使用$addToSet操作符:

实现这一点的最佳方法是使用操作符,确保不会向集合中添加重复项,并使用修饰符向“following”数组中添加多个值


您还应该使用该方法,因为
update
已被弃用。

尝试给出一个示例,而不仅仅是一个URL。这样,答案就不依赖于URL是否保持有效。findOneAndUpdate是否可能?如何删除?
urls = [j.url for j in a.followers]
db.graph.update_one({"user_id": a.url}, {"$addToSet": {"following": {"$each": urls}}})