sql >> Database >  >> NoSQL >> MongoDB

Meerdere records opwaarderen met MongoDb

Dit zal - correct - geen records invoegen met event_id 1 of 2 als ze nog niet bestaan

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

Dit komt omdat de objNew onderdeel van de zoekopdracht (zie http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers ) heeft geen waarde voor veld event_id . Als gevolg hiervan hebt u ten minste X+1 trips naar de database nodig, waarbij X het aantal event_ids is, om ervoor te zorgen dat u een record invoegt als er geen bestaat voor een bepaald event_id (de +1 komt van de bovenstaande query , wat de bezoekenteller voor bestaande records verhoogt). Om het op een andere manier te zeggen, hoe weet MongoDB dat je waarde 2 wilt gebruiken voor de event_id en niet 1? En waarom niet 6?

W.r.t. batch-invoeging met ruby, ik denk dat het mogelijk is, zoals de volgende link suggereert - hoewel ik alleen de Java-driver heb gebruikt:Batch invoegen/bijwerken met Mongoid?



  1. Hoe kan ik MongoDB-verzamelingen delen tussen Meteor-apps?

  2. Schrijf je eerste adviseur

  3. Node.js callback met MongoDB-update keert nooit terug, hoewel DB wordt bijgewerkt

  4. Veldnamen van FieldPath mogen geen '.' bevatten. in $groep