一個文檔{"m":[1,2,3], "others":xxx}
項目元件中,通過在獲得陣列的「m」的第一個元素:mongodb的陣列
db.find({query},{"m":{$slice:1}, "m":1})
返回的是{"m":[1]}
,在DOC的元件是一個數組。但是在這個查詢中,數組中只有一個元素會被獲取,所以我不需要返回doc包含只有一個元素的數組。這就像子查詢中的SQL局部變量。我想要的元素在原文檔沒有名字,如果我要得到它,然後我需要做一個名字對於它的文檔返回,我想是這樣的:{「所以LocalVariable」:1},而不是{「M」:1 ]}
我嘗試以伸出的第一要素:
db.find({query},{"m":{$slice:1}, "m.1":1})
但這不起作用。
什麼是問號? –
@jean我猜你的意思。你想要:「**數組的**第一**元素**,但**不**作爲數組值,** **只是**返回值?你不能這樣做,而不是用find。也許對於聚合,但我仍然懷疑這是你真正想要的,只是學會使用數組返回值,它是一個包含一個元素的數組,這不應該很難,你提出這個問題的方式顯然不是你真正的編碼使用情況下,你會做的更好請教一個問題,是關於** **實際代碼和問題,需要解決的問題。 –
從JS API它確實是很難區分的。我使用C++的驅動程序,在這種情況下,代碼寫的很無聊每次我需要得到m個文檔,並將其轉換爲DOC的容器,並獲得第一個元素,然後將其轉換爲int值 – jean