ich eine Mongo Sammlung workspaces
in meinem MongoDB haben, die von Datensätzen bestehen, die wie folgt aussieht wie folgt:eine Sammlung innerhalb Reihe von Sammlungen in MongoDB aktualisiert
{
"_id" : ObjectId("58bdc4a13504f5ed743ad025"),
"name" : "My workspace",
"user_id" : ObjectId("58b6cf53988a874af070fd3b"),
"uploads" : [
{
"original" : "DE-20__450_GG_5002_N23_994__0136.tif"
},
{
"original" : "DE-20__450_GG_5002_N23_994__0134.png"
},
{
"original" : "DE-20__450_GG_5002_N23_994__0136.png"
},
{
"original" : "DE-20__450_GG_5002_N23_994__0134.tif"
}
]
}
Jetzt ist mein Ziel ist es, dass ich etwas in einer angehängt werden soll des Datensatzes des Arrays uploads
mit den Übereinstimmungskriterien original
Feldwert. Zum Beispiel möchte ich in folgenden Weise "pseg" : "DE-20__450_GG_5002_N23_994__0136.pseg.tif"
zur {"original" : "DE-20__450_GG_5002_N23_994__0136.tif"}
Sammlung anhänge:
{
"_id" : ObjectId("58bdc4a13504f5ed743ad025"),
"name" : "Objective",
"user_id" : ObjectId("58b6cf53988a874af070fd3b"),
"uploads" : [
{
"original" : "DE-20__450_GG_5002_N23_994__0136.tif",
"pseg" : "DE-20__450_GG_5002_N23_994__0136.pseg.tif"
},
{
"original" : "DE-20__450_GG_5002_N23_994__0134.png"
},
{
"original" : "DE-20__450_GG_5002_N23_994__0136.png"
},
{
"original" : "DE-20__450_GG_5002_N23_994__0134.tif"
}
]
}
ich versuchte $elemMatch
und anschließend hinzugefügt i $addToSet
in folgenden Weise:
db.getCollection('workspaces').update({"_id": ObjectId("58bdc4a13504f5ed743ad025"),"uploads": {$elemMatch: {"original": "DE-20__450_GG_5002_N23_994__0136.tif"}}},{$addToSet:{"uploads.$": {"pseg" : "DE-20__450_GG_5002_N23_994__0136.pseg.tif"}}})
aber es gibt mir folgende Fehlermeldung:
Cannot apply $addToSet to a non-array field. Field named '0' has a non-array type object in the document _id: ObjectId('58bdc4a13504f5ed743ad025')
Ich denke, ich habe die Abfrage falsch gemacht kann mir jemand sagen, was los ist und wie kann ich solv e es?
Sorry für mein schlechtes Englisch :) hoffe, du hast verstanden, was ich gesagt habe.
Vielen Dank seiner Arbeiten. Sehr geschätzt für den Link ist es wirklich hilfreich, die korrekte Syntax zu verstehen. Auch danke, dass ich der Punktnotation Idee gegeben habe, wusste ich nicht, dass wir es auch bei Sammelarrays verwenden können. – Seeker