我有一組文檔,每個文檔都包含一個子文檔數組。每個子文檔都有一個時間值。我正在嘗試查看是否可以根據子文檔中的時間返回子文檔。MongoDB查詢通過數組中的值檢索一個數組值
我知道我可以使用$ slice檢索子文檔,但$ slice只給我一個特定的索引或範圍和偏移量。
示例時間!
文件是像這樣....
{
id: 1234,
type: 'a',
subs: [
{ time: 123001, val: 'a' },
{ time: 123002, val: 'b' },
{ time: 123003, val: 'c' }
]
}
如果我做查找查詢({},{替補:{$切片:[2,1]}})我回來像:
{ id: 1234, type: 'a', subs: [{ time: 123002, val: 'b' }]}
我想檢索該記錄,例如基於沒有偏移量,但基於123002時間值。
可能嗎?
去吧!
哦,呵呵!是的,這將工作。謝謝。雖然除非我誤解你在說什麼,你可以返回一個文檔的一部分.. http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields只是不使用片的數組的一部分。謝謝! – FredArters
如果你使用你的原始結構,你可以做'subs.2'來獲得數組中的第三個元素。但是你通常不知道第三項是什麼。所以對於數組來說,它通常是全或全無。 –
問題是舊的,但也許這對尋找答案的人有用。可以使用$ elemMatch將數組中的一個文檔進行匹配。 http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29#DotNotation%28ReachingintoObjects%29-Matchingwith%24elemMatch – Esteban