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

标签 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}})

最佳答案

最好的方法是使用 $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 已被弃用。

关于python - 在 MongoDB 上使用 $push 更新数组时避免重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518635/

相关文章:

python - Matplotlib 中的 PdfPages 将同一图形保存两次

python - 没有 'for' 的列表理解

java - Java 中的 Mongo 导出

node.js - Gruntjs - 以特定顺序运行多个阻塞任务(Mongo 和 Node.js)

node.js - Mongoose - 插入子文档

javascript - 将 MongoDB 文档字段合并到一个文档中

javascript - $and with sub $and 在 mongo 和 mongoose 中没有产生预期结果

python - TensorFlow:Blas GEMM 启动失败

Python PDF 库

具有 3 个级别的 MongoDB 嵌套查找