MongoDB cung cấp NOW
biến hệ thống cho phép bạn nhận giá trị ngày giờ hiện tại khi sử dụng đường dẫn tổng hợp.
Điều này có thể hữu ích khi bạn muốn cập nhật tài liệu với ngày giờ hiện tại.
Bắt đầu từ MongoDB 4.2, các phương thức cập nhật có thể chấp nhận một đường dẫn tổng hợp. Do đó, NOW
có thể được sử dụng thay thế cho $currentDate
toán tử cập nhật trường để đặt ngày giờ hiện tại khi sử dụng bất kỳ phương pháp cập nhật nào.
Để truy cập NOW
biến hệ thống, đặt tiền tố nó bằng hai ký hiệu đô la và đặt nó trong dấu ngoặc kép ("$$NOW"
).
Ví dụ
Giả sử chúng ta có một bộ sưu tập có tên là dogs
chứa tài liệu sau:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
Dưới đây là một ví dụ về việc sử dụng NOW
biến hệ thống khi cập nhật tài liệu đó:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
)
Bây giờ chúng ta hãy xem lại tài liệu:
db.dogs.find( { _id: 1 } ).pretty()
Kết quả:
{ "_id" : 1, "name" : "Fetch", "weight" : 30, "lastModified" : ISODate("2021-01-27T01:29:32.833Z") }
lastModified
trường đã được thêm với một đối tượng Ngày có chứa ngày và giờ hiện tại.
Cũng có một CLUSTER_TIME
biến hệ thống trả về dấu thời gian hiện tại, mặc dù điều này chỉ khả dụng trên các tập hợp bản sao và các cụm phân đoạn.
Cũng lưu ý rằng NOW
và CLUSTER_TIME
các giá trị vẫn giữ nguyên trong suốt quá trình.