2016-04-09 14 views
5

Chcę przenieść niektóre wartości do tablicy przy użyciu Pythona.
Może następnym razem, gdy zaktualizuję tablicę, wstawi ona niektóre wartości, więc otrzyma zduplikowane wartości.
Chcę się dowiedzieć, czy istnieje, aby uniknąć powtarzania wartości.
Czy należy użyć db.collection.find() w celu ustalenia, czy powinienem wstawić czy nie?

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

Odpowiedz

9

Najlepszym sposobem na to jest za pomocą $addToSet operatora, który zapewnia, że ​​nie ma zduplikowane elementy dodane do zestawu i $each modyfikator do dodaj wiele wartości do tablicy "podążanie".

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

również należy użyć metody update_one ponieważ update jest przestarzała.

Powiązane problemy