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