我在MongoDB中有一个集合,其中的元素看起来像这样
{
userId: 'X',
access: [
{ deviceId: 'a', time: "A timestamp" },
{ deviceId: 'b', time: "Another timestamp" },
]
}
我想根据userId匹配文档,然后我想获取访问数组中的最后一个元素。对于ID为“ X”的用户,我在这里最感兴趣的值是“另一个时间戳记”。
我不希望mongodb返回整个文档,仅返回最后一个元素,并且始终返回最后一个。
如何编写查询/聚合来解决此问题?
答案 0 :(得分:1)
尝试使用$slice
:
db.collection.find({ userId: 'value' }, { access: { $slice: -1 } } )