<Unknown function>
这是我的mongo数据,我想将注销时间设置为当前时间,将“持续时间”设置为同时登录和注销时间的差异。所以我执行了以下查询:
{
"_id" : ObjectId("57693a852956d5301b348a99"),
"First_Name" : "Sri Ram",
"Last_Name" : "Bandi",
"Email" : "chinni001sriram@gmail.com",
"Sessions" : [
{
"Class" : "facebook",
"ID" : "1778142655749042",
"Login_Time" : ISODate("2016-06-21T13:00:53.867Z"),
"Logout_Time" : ISODate("2016-06-21T13:01:04.640Z"),
"Duration" : null
}
],
"Count" : 1
}
但我得到的结果是将注销时间设置为当前时间,但持续时间设置为“NaN”。
答案 0 :(得分:0)
Mongo不支持在更新中引用当前对象
所以你可以做的是:
db.collection.find( { "Sessions.ID": 1778142655749042, "Sessions.Logout_Time": null
}).forEach(function(doc){
for(var session in doc.Sessions){
if(!session.Logout_Time){
session.Logout_Time = new Date();
session.Duration = new Date(new Date() - doc.Login_Time");
}
}
db.collection.save(doc);
});