我正在尝试做的事情:
筛选与给定条件匹配的集合的字段。而不是返回字段中的每个项目(这是一个项目数组),我只想查看匹配的项目。
如同
select items from test where items.histPrices=[10,12]
它也类似于在 mongodb 网站上找到的内容:http ://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields
这是我一直在尝试的:
db.test.save({"name":"record", "items":[{"histPrices":[10,12],"name":"stuff"}]})
db.test.save({"name":"record", "items":[{"histPrices":[10,12],"name":"stuff"},
{"histPrices":[12,13],"name":"stuff"},{"histPrices":[11,14],"name":"stuff"}]})
db.test.find({},{"name":1,"items.histPrices":[10, 12]})
它将返回与 items.histPrices:[10,12] 匹配的所有对象,包括 items[] 中的所有项目。但我不想要那些不符合条件的。
从两年前在 Mongodb 上留下的评论来看,仅获取具有 histPrices[10,12] 的项目的解决方案是使用 javascript 代码,即循环遍历结果集并过滤掉其他项目。
我想知道是否有办法只用查询来做到这一点。