MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Setzen Sie mehrere Datensätze mit MongoDb um

Dadurch werden - korrekterweise - keine Datensätze mit event_id 1 oder 2 eingefügt, wenn sie nicht bereits existieren

db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)

Das liegt daran, dass objNew Teil der Abfrage (siehe http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers ) hat keinen Wert für das Feld event_id . Infolgedessen benötigen Sie mindestens X+1 Fahrten zur Datenbank, wobei X die Anzahl der event_ids ist, um sicherzustellen, dass Sie einen Datensatz einfügen, wenn keiner für eine bestimmte event_id existiert (das +1 kommt von der obigen Abfrage , wodurch der Besuchszähler für vorhandene Datensätze erhöht wird). Um es anders auszudrücken, woher weiß MongoDB, dass Sie den Wert 2 für die event_id und nicht 1 verwenden möchten? Und warum nicht 6?

W.r.t. Batch-Einfügung mit Ruby, ich denke, es ist möglich, wie der folgende Link vorschlägt - obwohl ich nur den Java-Treiber verwendet habe:Batch-Einfügung/Aktualisierung mit Mongoid?