sql >> Databasteknik >  >> NoSQL >> MongoDB

Upsert Multiple Records med MongoDb

Detta kommer - korrekt - inte att infoga några poster med event_id 1 eller 2 om de inte redan finns

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

Detta beror på att objNew del av frågan (se http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers ) har inget värde för fältet event_id . Som ett resultat kommer du att behöva minst X+1-resor till databasen, där X är antalet händelse_id, för att säkerställa att du infogar en post om det inte finns någon för ett visst händelse-id (+1:an kommer från frågan ovan) , vilket ökar besöksräknaren för befintliga poster). För att säga det på ett annat sätt, hur vet MongoDB att du vill använda värde 2 för event_id och inte 1? Och varför inte 6?

W.r.t. batchinsättning med ruby, jag tror att det är möjligt som följande länk antyder - även om jag bara har använt Java-drivrutinen:Batchinfoga/uppdatera med Mongoid?



  1. Rails 4 och mongoid:skapa programmässigt en fråga med flera OCH- och ELLER-villkor

  2. Hitta den totala tiden som en användare spenderar i mongoDB

  3. Vad är skillnaden mellan $near och $nearSphere i Mongo?

  4. Mongodb-installationen misslyckades med homebrew och Xcode 8.1.1