mongodb - Mongodb:从文档中的数组中获取最后一项
问题描述
我在 MongoDB 中有一个集合,其中的元素看起来像这样
{
userId: 'X',
access: [
{ deviceId: 'a', time: "A timestamp" },
{ deviceId: 'b', time: "Another timestamp" },
]
}
我想根据 userId 匹配文档,然后我想获取访问数组中的最后一个元素。对于 ID 为“X”的用户,我最感兴趣的值是“另一个时间戳”。
我不希望 mongodb 返回整个文档,只返回最后一个元素,并且始终返回最后一个元素。
我怎样才能编写一个查询/聚合来解决这个问题?
解决方案
尝试使用$slice
:
db.collection.find({ userId: 'value' }, { access: { $slice: -1 } } )
推荐阅读
- python - 如何使用 rtlsdr 作为源对特定频率进行带通滤波器?
- azure - Azure B2C 的 Apple 服务 ID(客户端 ID)在哪里?
- ios - 尝试呈现菜单场景并创建按钮时出现致命零错误(swift SpriteKit)
- latex - 有没有办法覆盖 org-mode 默认导出行为?
- ruby-on-rails - 默认的 404 页面将不再显示
- python - 遍历python中数据框列的每个元素
- pointers - 交换双向链表中的两个相邻节点
- r - glmmLasso 函数无法完成运行
- ckeditor5-react - 如何使用ckeditor5-react添加的所有链接附加查询参数?
- amazon-web-services - 云形成模板在 dynamodb 提供中使用 If 条件提供两个 GSI NonKeyAttributes