处理嵌套文档时是否可以使用Dot Notation?
[http://www.mongodb.org/display/DOCS/Dot+Notation+(Reaching+into+Objects](http://www.mongodb.org/display/DOCS/Dot+Notation+(Reaching+into+Objects))
我正在尝试查询map / reduce的结果,因此需要运行如下查询:
find({'_id.page' : 'ThisPage', '_id.user' : 'AUser'})
在Node代码中尝试此操作不返回任何行,但同样的查询在mongodb shell中按预期工作 .
2 回答
到达查询文档内部不需要点表示法,您可以使用文档表示法 .
find({'_id.page' : 'ThisPage', '_id.user' : 'AUser'})
可能反过来
find({_id: {page: 'ThisPage', user: 'AUser'}})
这很有可能,我以前做过 .
为什么在_id属性下有嵌套文档?不知道你的用例是什么,但这似乎有点奇怪 . _id是一个特殊属性,始终是文档的唯一ID . 因此,驱动程序可能会对此进行特殊处理(即不会期望存在子文档) . 也许尝试将您的子文档放在不同的属性名称下 .