sql >> Databasteknik >  >> NoSQL >> MongoDB

NodeJS + Mongo:Infoga om det inte finns, annars - uppdatera

Om du vill infoga ett dokument om det inte hittas kan du använda upsert alternativet i update() metod:

collection.update(_query_, _update_, { upsert: true });

Se dokument för upplaga beteende.

Ett exempel med $exists operatör.

Låt oss säga att du har 6 dokument i din samling:

> db.test.find()
{ "_id": ObjectId("5495aebff83774152e9ea6b2"), "a": 1 }
{ "_id": ObjectId("5495aec2f83774152e9ea6b3"), "a": [ ] }
{ "_id": ObjectId("5495aec7f83774152e9ea6b4"), "a": [ "b" ] }
{ "_id": ObjectId("5495aecdf83774152e9ea6b5"), "a": [ null ] }
{ "_id": ObjectId("5495aed5f83774152e9ea6b7"), "a": [ 0 ] }
{ "_id": ObjectId("5495af60f83774152e9ea6b9"), "b": 2 }

och du vill hitta dokument som har ett visst fält "a" ), kan du använda find() metoden med $exists operatör (nod dokument ). Notera:detta kommer också att returnera dokument som är en tom array.

> db.test.find( { a: { $exists: true } } )
{ "_id": ObjectId("5495aebff83774152e9ea6b2"), "a": 1 }
{ "_id": ObjectId("5495aec2f83774152e9ea6b3"), "a": [ ] }
{ "_id": ObjectId("5495aec7f83774152e9ea6b4"), "a": [ "b" ] }
{ "_id": ObjectId("5495aecdf83774152e9ea6b5"), "a": [ null ] }
{ "_id": ObjectId("5495aed5f83774152e9ea6b7"), "a": [ 0 ] }



  1. Vad är det enklaste sättet att hitta de största föremålen i Redis?

  2. Är Redis list eller set pop metod tråd säker?

  3. Kan jag köra en rå MongoDB-fråga i node-mongodb-native drivrutin?

  4. Hur implementerar man twitter och facebook api som markörbaserad paginering i mongodb i nodejs med den officiella mongodb-klienten?