MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

NodeJS + Mongo:Chèn nếu không tồn tại, nếu không - cập nhật

Nếu bạn muốn chèn một tài liệu nếu nó không được tìm thấy, bạn có thể sử dụng upsert trong update() phương pháp:

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

Xem tài liệu về nâng cấp hành vi.

Một ví dụ với $exists nhà điều hành.

Giả sử bạn có 6 tài liệu trong bộ sưu tập của mình:

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

và bạn muốn tìm tài liệu có một trường nhất định "a" ), bạn có thể sử dụng find() $ tồn tại toán tử ( nút tài liệu ). Lưu ý:điều này cũng sẽ trả về tài liệu mà trường là một mảng trống.

> 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. Các vấn đề với CORS. Bình <-> AngularJS

  2. MongoDB - số lượng lớn các chủ đề MongoCleaner

  3. Xác thực duy nhất Mongoose không hoạt động. Các mục trùng lặp được lưu

  4. Làm thế nào Express biết được đường dẫn Router nào sẽ sử dụng khi nhiều đường dẫn trùng khớp?

  5. Cách xuất kết quả truy vấn MongoDB sang tệp CSV