假设我有一个节点文档,如下所示:
{
_id: 0,
lastPing: ISODate("2016-12-27T00:37:31.828Z"),
last10Pings: [ISODate("2016-12-27T00:35:31.828Z"), ISODate("2016-12-27T00:37:31.828Z"), ...]
}
lastPing将存储来自客户端的最新更新,而last10Pings将存储来自客户端的最新10个更新。
使用客户端:
中的此查询更新lastPing非常简单db.nodes.update({_id: 0}, {$currentDate: {lastPing: true}});
尝试从服务器进行更新时,更新last10Pings也不是问题:
db.nodes.update({_id: 0}, {$push: {last10Pings: {$each: [new Date()], $slice: 10}}});
现在我遇到了一个难题。我想将服务器时间(类似于$ currentDate)推送到last10Pings,其中从客户端查询。我不能从客户端使用new Date()
,因为它将使用本地时间而不是服务器时间。