Was ich versuche zu tun ist ziemlich einfach, ich habe ein Array in einem Dokument;MongoDB Dokument einfügen "oder" Inkrementieren Feld, wenn in Array existiert
"tags": [
{
"t" : "architecture",
"n" : 12
},
{
"t" : "contemporary",
"n" : 2
},
{
"t" : "creative",
"n" : 1
},
{
"t" : "concrete",
"n" : 3
}
]
Ich möchte ein Array der anzuordnenden Objekte schieben wie
["architecture","blabladontexist"]
Wenn Element gibt, möchte ich n
Wert des Objekts erhöhen (in diesem Fall seine architecture
),
und wenn nicht, füge es als neues Element hinzu (mit Wert n=0
) { "t": "blabladontexist", "n":0}
Ich habe versucht $addToSet
, $set
, $inc
, $upsert: true
mit so vielen Kombinationen und konnte es nicht tun.
Wie können wir das in MongoDB tun?
Haben Sie sich die Aggregationspipeline überhaupt angesehen? –
Ich denke, Aggregation ist keine Lösung für das Problem, weil es nur Daten aus der Sammlung auswählen. @Sadettin Bilal Savaş benötigt Daten einfügen. Es hat nur einen Grund, wenn sich die Struktur der Sammlung ändert. – Kison
Würden Sie die Struktur Ihrer Daten als Lösung betrachten? Zum Beispiel können Sie Verweise auf Entitäts-IDs "Tag" in Ihrem Array "Tags" haben. –