1
我想知道是否有任何方法可以进行复杂的选择。 考虑下面的文档集合:MongoDB数组谓词
{
image = "cab"
tags = [
[ "NNP", 0 ],
[ "NN", 1 ]
]
},
{
image = "castle"
tags = [
[ "NNP", 2 ],
[ "NN", 1 ],
[ "VB", 0 ]
]
},
(etc)
我将如何表达,检查是否tags
包含任何元素一样,例如查询,["NN", ?]
在那里我根本不关心内部数组的整数部分?请注意,内部数组是无序的,整数值是任意分配的。
请注意,我是mongodb的新成员,可能忽略了在文档中执行此操作的方法。然而,我无法顺利使用$elemMatch
:-(
谢谢。我很怀疑。尽管你的查询不能立即执行,因为'tags'仍然是一个对象数组,但是发出一个'.find({“tags”:{$ elemMatch:{“tag”:“NN”}}})'did这个技巧在你的模式中很好。 – Manny 2011-04-06 09:14:27
@曼尼:我的查询都可以;)。 '.find({“tags”:{$ elemMatch:{“tag”:“NN”}}})'给出与.find相同的结果({“tags.tag”:“NN”)'。只要看看[文档](http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24elemMatch)或询问是否需要。另外我在我的答案中添加了'点符号'文档的链接。 – 2011-04-06 09:36:43