1
我有一个这样的MongoDB的文档中的所有匹配的数组元素,的MongoDB:查找单个文档
{
"_id" : ObjectId("4e8ae86d08101908e1000001"),
"eId": 101,
"about": "test",
"tags" : [
{"name": "jana"},
{"name":"bala"},
{"name":"jk"},
{"name":"charles"}
]
}
我需要找到所有匹配的数组元素,在给定阵列相匹配的名称。
db.coll.find({"tags": {"$elemMatch": {"name": {"$in": [/^jana/i, /^charles/i] }}}})
此查询我得到以下结果
{
"_id" : ObjectId("4e8ae86d08101908e1000001"),
"tags" : [
{
"name" : "jana"
}
]
}
只有
$ elemMatch查询返回的第一个匹配元素,但我想所有匹配的数组元素就是这样,
{
"_id" : ObjectId("4e8ae86d08101908e1000001"),
"tags" : [
{
"name" : "jana"
},
{
"name" : "charles"
}
]
}
是否有可能得到这样的结果?
注:我不想让任何外人田,我想只能用_id
没有聚合框架,有没有其他解决方案? – Jana
我不这么认为,投影中的[''elemMatch''](http://docs.mongodb.org/manual/reference/operator/projection/elemMatch/#proj._S_elemMatch)将只返回第一个元素匹配条件。 – thegreenogre