2016-04-09 18 views
5

Pythonを使用して配列に値をプッシュしたいとします。
次回は配列を更新するときにいくつかの値が挿入されるので、重複した値が得られます。
私は、とにかく重複する値を避けるためにそこにいることを知りたいと思います。
db.collection.find()を使用して挿入する必要があるかどうかを判断する必要がありますか? https://docs.mongodb.org/manual/reference/operator/update/addToSet/

答えて

9

これを行うための最善の方法は、セットに追加重複項目と$each修飾に存在しないことを保証$addToSet演算子を使用している:

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

は、私はあなたが$ addToSet演算子を使用することができることを、考えて「次の」配列に複数の値を追加します。

urls = [j.url for j in a.followers] 
db.graph.update_one({"user_id": a.url}, {"$addToSet": {"following": {"$each": urls}}}) 

updateが廃止されましたので、また、あなたがupdate_oneメソッドを使用する必要があります。

+5

単なるURLではなく、例を挙げてください。そうすれば、回答は有効なURLに依存しなくなります。 – BanksySan

+0

ああ、私はこれを忘れて.....ありがとう –

関連する問題