Ich habe eine Bildergalerie mit Meta in Mongo gespeichert. Jedes Mal, wenn die Website-Abfrage mit einer bestimmten Anzahl gespeicherter Bilder übereinstimmt, möchte ich, dass die Zählerfelder des Dokuments shown
inkrementiert werden. Die Verwendung von findAndModify
würde für ein einzelnes Dokument OK sein, aber ich sehe keine gute Möglichkeit, mehrere Dokumente zu vergleichen und alle zu aktualisieren.Mongo Bulk finden und aktualisieren übereinstimmende Dokumente Feld in Einzelabfrage?
Ist dies mit der neuesten Version von Mongo möglich? Oder irgendwelche empfehlen Best Practices, um dies zu erreichen?
dank fLo
Das Dokumentformat
{
"name" : "img name",
"description" : "some more info",
"size" : "img size in bytes",
"shown" : "count of times the image was selected by query",
"viewed" : "count of times the image was clicked"
}
sehr einfach ist und die Abfrage ist ein einfacher finden, dann Cursor auf Schleife über Ergebnis zu erzielen, und stoßen die gezeigte Zählung Dokument-ID verwenden .. dh
db.images.update(
{ _id: "xxxx" },
{ $inc: { shown: 1 } }
)
Aber ich würde es vorziehen, nicht zu 100 Dokumente dann in einer Schleife über jeweils bekommen einzeln zu aktualisieren. Hatte versucht, in Einzelabfrage zu finden und zu aktualisieren.
Können zeigen Sie uns einige Beispieldokumente und Ihre aktuelle Update-Abfrage? – chridam
ok, weitere Informationen zur Frage hinzugefügt. Vielen Dank. –