Die Aktualisierung (Erhöhung) einen Wert innerhalb eines sub-Dokument in MongoDB
Wenn ich eine MongoDB collection mit Dokumenten und sub-Dokumente, wie dargestellt:
Und, wenn ich will, erhöht sich der "Schaden" von 1 jedes mal, wenn die Methode aufgerufen wird:
private final static void incrementCount(String docID, String subDocID) {
BasicDBObject query = new BasicDBObject();
query.put("_id", docID);
query.put("items.id", subDocID);
BasicDBObject incValue = new BasicDBObject("damage", 1); //or "items.damage" ???
BasicDBObject intModifier = new BasicDBObject("$inc", incValue);
badgesCollection.update(query, intModifier, false, false, WriteConcern.SAFE);
}
Frage: Schreibe ich "Schaden" oder "Elemente.Schaden" ?
items.damage
ist der richtige Weg zu gehen. Alles wird aus der Wurzel des Dokuments
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weder. Wenn Sie möchten, erhöhen Sie einfach die
damage
Wert für dieitems
array-element mit dem passendensubDocID
müssen Sie die$
positions-Betreiber zu identifizieren, die das element der$inc
Betreiber. So ist es: