1
我有一個集合中的follwing項目:如何考慮在陣列只是第一個元素
{ 「_id」:1, 「丘壑」:[{A:1,B 2,C: 0},{a:1,b:2,c:1},{a:1,b:2,c:2}]}
{「_id」:2,「vals」:[{a:1 ,b:2,c:1},{a:1,b:2,c:2},{a:1,b:2,c:0}]
{「_id」:3, 「:[{a:1,b:2,c:2},{a:1,b:2,c:0},{a:1,b:2,c:1}]}
我想查找所有含有(vals.c> 1)的項目,但只考慮總是排列的第一個元素年。
這樣做以正確的方式,我只會得到項目:_id:2,_id:3在結果中。
以下follwing查找請求我得到的所有項目。
db.items.find({瓦爾斯:{$ elemMatch:{C:{$ GTE:1}}},{ 「瓦爾斯$。」:1}})
任何想法如何提出請求,獲得希望的結果?
是的!你是對的!直到昨天晚上,我在訪問數組字段時不知道索引使用情況。感謝名單! – user1480734
您是否通過purechange瞭解我如何通過匹配來減少結果集?在例子中,我得到了所有三個數組項。我嘗試使用$(query)和$(projection)-operator,但不幸的是,然後不允許通過索引訪問數組字段。 =( – user1480734
編輯我的答案上面。 –