我想用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}})
答案 0 :(得分:12)
执行此操作的最佳方法是使用$addToSet
运算符,该运算符可确保没有重复项添加到集合中,$each
修饰符可将多个值添加到"以下"阵列。
urls = [j.url for j in a.followers]
db.graph.update_one({"user_id": a.url}, {"$addToSet": {"following": {"$each": urls}}})
您也应该使用update_one
方法,因为不推荐使用update
。
答案 1 :(得分:3)
我认为,您可以使用$ addToSet运算符:https://docs.mongodb.org/manual/reference/operator/update/addToSet/