首页 > 解决方案 > Mongodb:从文档中的数组中获取最后一项

问题描述

我在 MongoDB 中有一个集合,其中的元素看起来像这样

{
  userId: 'X',
  access: [
    { deviceId: 'a', time: "A timestamp" },
    { deviceId: 'b', time: "Another timestamp" },
  ]
}

我想根据 userId 匹配文档,然后我想获取访问数组中的最后一个元素。对于 ID 为“X”的用户,我最感兴趣的值是“另一个时间戳”。

我不希望 mongodb 返回整个文档,只返回最后一个元素,并且始终返回最后一个元素。

我怎样才能编写一个查询/聚合来解决这个问题?

标签: mongodb

解决方案


尝试使用$slice

db.collection.find({ userId: 'value' }, { access: { $slice: -1 } } )

推荐阅读