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

Làm cách nào để tăng đúng nhiều ngày trong mongoDB?

Bắt đầu trong Mongo 4.2 , db.collection.update() có thể chấp nhận một đường ống tổng hợp, cuối cùng cho phép cập nhật một trường dựa trên giá trị của chính nó; do đó tránh được các mẫu tìm / dò trước không hiệu quả.

Ngoài ra, bạn cũng đang xem $inc toán tử để thêm một ngày, nhưng bây giờ chúng ta có thể sử dụng đường dẫn tổng hợp làm bản cập nhật, $add toán tử có thể được sử dụng:

// { "date" : ISODate("2020-04-05T07:14:17.802Z"), "x" : "y" }
db.collection.updateMany(
  { date : { $exists : true } },
  [{ $set: { date: { $add: ["$date", 24*60*60000] } } }]
)
// { "date" : ISODate("2020-04-06T07:14:17.802Z"), "x" : "y" }
  • Phần đầu tiên { date : { $exists : true } } là truy vấn đối sánh, lọc tài liệu nào cần cập nhật (trong trường hợp của chúng tôi là tất cả các tài liệu có date trường).

  • Phần thứ hai [{ $set: { date: { $add: ["$date", 24*60*60000] } } }] là đường ống tổng hợp cập nhật (lưu ý dấu ngoặc vuông biểu thị việc sử dụng đường ống tổng hợp). $set là một toán tử tổng hợp mới và là bí danh của $addFields . Sau đó, bất kỳ toán tử tổng hợp nào cũng có thể được sử dụng trong $set sân khấu; trong trường hợp của chúng ta, một $add đơn giản ý nghĩa giữa ngày hiện tại và đại diện của một ngày tính bằng mili giây.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB dropIndexes ()

  2. làm thế nào để gọi hoạt động đếm sau khi tìm thấy với trình điều khiển java mongodb

  3. Làm cách nào để cập nhật / nâng cấp tài liệu trong Mongoose?

  4. Cách truy vấn MongoDB với like

  5. Tự động hóa và quản lý MongoDB trong đám mây