【发布时间】:2015-04-25 03:51:52
【问题描述】:
我知道 MongoDB 支持语法find{array.0.field:"value"},但我特别想对数组中的最后一个元素执行此操作,这意味着我不知道索引。是否有某种运算符可以解决这个问题,还是我不走运?
编辑:澄清一下,我希望 find() 仅返回数组最后一个元素中的字段与特定值匹配的文档。
【问题讨论】:
-
您的文档是什么样的?
-
好吧,我尝试测试的数组实际上嵌套在另一个数组中,但我认为这不会有任何影响。基本上我想做的是,在我的 find 选择器中,只返回数组最后一个元素中的特定字段与某个值匹配的文档。
-
你应该看看aggregation,然后玩
$unwind、$project、$match和$group -
使用最新的 MongoDB,您可以这样做:
find({"array.-1.field":"value"}) -
@MarsLee 在 4.2.0 版上对我不起作用 - 你有更多相关信息吗?
标签: arrays mongodb mongoose mongodb-query spring-data-mongodb