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

MongoDB Cập nhật phần tử mảng (tài liệu có khóa) nếu tồn tại, nếu không sẽ đẩy

Bạn có thể sử dụng $addToSet để thêm một mục vào mảng và $set để cập nhật một mục hiện có trong mảng này.

Phần sau sẽ thêm một mục mới vào mảng nếu userID không được tìm thấy trong mảng:

db.doc.update({
    visits: {
        "$not": {
            "$elemMatch": {
                "userID": 4
            }
        }
    }
}, {
    $addToSet: {
        visits: {
            "userID": 4,
            "time": 1482607614
        }
    }
}, { multi: true });

Phần sau sẽ cập nhật mục mảng tài liệu con nếu nó khớp với userId :

db.doc.update({ "visits.userID": 2 }, {
    $set: {
        "visits.$.time": 1482607614
    }
}, { multi: true });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. PHP 5.5 có hoạt động với trình điều khiển MongoDB không?

  2. làm thế nào để nhập dữ liệu vào ứng dụng sao băng đã triển khai?

  3. Thời gian tải RSpec lâu đáng kinh ngạc trên OS X

  4. Chạy tập lệnh javascript (tệp .js) trong mongodb bao gồm một tệp khác bên trong js

  5. MongoDB hợp nhất số lượng mục thu thập liên quan với các kết quả thu thập khác