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

MongoDB:Cập nhật tài liệu bằng cách sử dụng dữ liệu từ cùng một tài liệu

Cập nhật: Nếu tất cả những gì bạn phải làm là thay đổi cấu trúc của tài liệu mà không thay đổi giá trị, hãy xem câu trả lời của gipset để biết một giải pháp hay.

Theo nhận xét (hiện không có) trên trang tài liệu Cập nhật, bạn không thể tham chiếu các thuộc tính của tài liệu hiện tại từ bên trong update() .

Bạn sẽ phải lặp lại tất cả các tài liệu và cập nhật chúng như thế này:

db.events.find().snapshot().forEach(
  function (e) {
    // update document, using its own properties
    e.coords = { lat: e.lat, lon: e.lon };

    // remove old properties
    delete e.lat;
    delete e.lon;

    // save the updated document
    db.events.save(e);
  }
)

Một hàm như vậy cũng có thể được sử dụng trong công việc thu nhỏ bản đồ hoặc db.eval() phía máy chủ tùy theo nhu cầu của bạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb qua jndi

  2. Mongoose findOneAndUpdate và runValidators không hoạt động

  3. Chiến lược đăng ký / xuất bản Meteor cho các bộ sưu tập phía máy khách duy nhất

  4. Hướng dẫn triển khai và bảo trì MongoDB bằng Puppet:Phần 2

  5. Tổng hợp với cập nhật trong mongoDB