Python 在MongoDB上使用$push更新数组时避免重复值
我想使用Python将一些值推送到数组中。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}}) 我
也许下次我更新数组时,它会插入一些存在的值,因此它会得到一些重复的值。
我想知道是否存在避免重复值的方法。
我应该使用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}}})