我的MongoDB有一个键值对结构,在我的文档中有一个data
字段,该字段包含两个字段的许多子文档:name
和value
。
如何搜索子文档,例如({"name":"position", "value":"manager"}
)和多个(例如{"name":"age", "value" : {$ge: 30}}
)
编辑:我不是在寻找一个特定的子文档,就像我在标题中提到的那样(不是位置引用),而是,我想要检索整个文档,但我需要它来完全匹配这两个子文档。
答案 0 :(得分:1)
以下是2个查询以查找以下记录:
ForeignKeyTable
注意如何使用{
"_id" : ObjectId("sometobjectID"),
"data" : [
{
"name" : "position",
"value" : "manager"
}
]
}
// Both value and name (in the same record):
db.demo.find({$elemMatch: {"value": "manager", "name":"position"}})
// Both value and name (not necessarily in the same record):
db.demo.find({"data.value": "manager", "data.name":"position"})
// Just value:
db.demo.find({"data.value": "manager"})
,这适用于所有子文档,即使它们在数组中。
您可以在此处使用您喜欢的任何运算符,包括.
编辑
由于@ Veeram's回复,$ elemMatch已添加回答
This answer解释了$gte
和$elemMatch