如何在MongoDB中获取嵌入文档的子集?
我有一个用户文档,这个文档里面有一个嵌套的日志事件数组,每个日志事件都有日期、时间和其他信息。请问有没有办法让我获取这个用户文档,并且只提取出一部分日志事件,条件是根据日期来筛选?
1 个回答
0
目前这是不可能的。
在1.5.1版本中,你可以使用这个$slice
操作符来做一些类似的事情,但前提是你的日志对象已经按日期排序(理论上应该是这样,因为你一般不会记录过去的事情):
> db.User.findOne({}, {"logs":{$slice: -2}}) // last two
> db.User.findOne({}, {"logs":{$slice: 2}}) // first two
不幸的是,这样做并不能让你精确地按日期在子集的中间进行搜索。