Schieben Sie ein element an ein array, wenn es nicht vorhanden ist (keine Duplikate)

Habe ich ein Ereignis Sammlung, die ich durchmache, zu finden eine Kategorie, um dem jeweiligen Ereignis und dann bin ich die Aktualisierung meiner anderen Sammlung mit einem $ - push-Anweisung. Das problem ist, dass, wenn zwei Ereignisse haben die gleiche Kategorie, es werden doppelte, die ich nicht will.

Weiß ich über upserts aber ich bin nicht sicher ob das der beste Weg zu gehen über diese? Und ich bin ein bisschen verwirrt, wenn es darum geht, wie man eigentlich schreiben, ein upsert, das funktioniert mit dem "$ "push"-Anweisung.

Dies ist, wie mein update sieht gerade jetzt:

self.users.update({"user_id": event['userid']}, {'$push': {'campaigns': UserCampaign}})

..wo:

UserCampaign = {
        "id": campaign['id'],
        "name": campaign['name']
}

Den "UserCampaign" gefüllt wird, die gleichen Informationen von Zeit zu Zeit, und da meine Sammlung ist wahrscheinlich gonna werden sehr groß, ich möchte zum Abschluss dieses so effizient wie möglich.

TLDR; ich will update das array in das Dokument gefunden, mit einem "push" - ohne das Risiko, dabei Duplikate.

InformationsquelleAutor Ms01 | 2012-06-13
Schreibe einen Kommentar