我很奇怪是否有任何方法可以进行复杂的选择。 考虑以下文档集:
{
image = "cab"
tags = [
[ "NNP", 0 ],
[ "NN", 1 ]
]
},
{
image = "castle"
tags = [
[ "NNP", 2 ],
[ "NN", 1 ],
[ "VB", 0 ]
]
},
(etc)
我如何表达一个查询,检查tags
是否包含任何元素,例如["NN", ?]
,其中我根本不关心内部数组的整数部分?请注意,内部数组是无序的,并且任意分配整数值。
请注意,我是mongodb的新手,我可能忽略了在文档中执行此操作的方法。但是,我无法成功使用$elemMatch
: - (
答案 0 :(得分:3)
我建议另一个架构:
{
image = "cab"
tags = [
{ name: "NNP", order: 0 },
{ name: "NN", order: 1 }
]
}
我建议另一个架构有三个原因:
使用上述模式,您可以轻松查询具有某些名称和顺序的标记:
db.images.find({ "tags.name" : "NN", "tags.order" : 1 })
<强>更新强>
希望这有帮助!