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

Mongodb nâng cấp tài liệu nhúng

Tôi nghĩ những gì bạn muốn là lệnh $ addToSet - sẽ đẩy một phần tử vào một mảng chỉ khi nó chưa tồn tại. Tôi đã đơn giản hóa ví dụ của bạn một chút cho ngắn gọn:

db.meters.findOne()
{
    "_id" : ObjectId("4f8e95a718bc9c7da1e6511a"),
    "config" : {
        "someparam" : 4.5
    },
    "data" : [
        {
            "Meter" : 123456789,
        }
    ],
    "key" : "20120418_123456789"
}

Bây giờ chạy:

db.meters.update({"key" : "20120418_123456789"}, {"$addToSet": {"data" : {"Meter" : 1234}}})

Và chúng tôi nhận được phiên bản cập nhật:

db.meters.findOne()
{
    "_id" : ObjectId("4f8e95a718bc9c7da1e6511a"),
    "config" : {
        "someparam" : 4.5
    },
    "data" : [
        {
            "Meter" : 123456789,
        },
        {
            "Meter" : 1234
        }
    ],
    "key" : "20120418_123456789"
}

Chạy lại lệnh tương tự và kết quả không thay đổi.

Lưu ý:bạn có thể sẽ phát triển các tài liệu này, đặc biệt nếu trường này không bị ràng buộc và gây ra các chuyển động thường xuyên (tương đối tốn kém) bằng cách cập nhật theo cách này - bạn nên xem tại đây để biết ý tưởng về cách giảm thiểu điều này:

http://www.mongodb.org/display/DOCS/Padding + Factor # PaddingFactor-ManualPadding




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm các điểm gần LineString trong mongodb được sắp xếp theo khoảng cách

  2. MongoDB C #:ID Serialization mẫu tốt nhất

  3. cài đặt mongodb-10gen không thành công với apt-get

  4. Lớp được tạo Mapstruct sử dụng trình tạo Lombok từ cha thay vì con

  5. Chạy di chuyển cơ sở dữ liệu (mongodb) với node.js