MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

NodeJS + Mongo:Вмъкнете, ако не съществува, в противен случай - актуализирайте

Ако искате да вмъкнете един документ, ако не е намерен, можете да използвате upsert опция в update() метод:

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

Вижте документи за upsert поведение.

Пример с $exists оператор.

Да приемем, че имате 6 документа във вашата колекция:

> 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 }

и искате да намерите документи, които имат определено поле "a" ), можете да използвате find() метод с $exists оператор (възел документи ). Забележка:това също ще върне документи, чието поле е празен масив.

> 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се свърже с Mongo Atlas чрез VPC peering от GCP клъстер

  2. Как да изпълнявам mongo команди от bash?

  3. Търсите начин да върнете документи от друга колекция въз основа на набор от друга, MongoDB

  4. MongoError:няма разрешение за изпълнение на команда { find:app_updates, filter:{ key:0.0.1-admins }, limit:1, batchSize:1, singleBatch:true }

  5. sudo service mongodb рестартирането дава неразпозната грешка в услугата в ubuntu 14.0.4