我想用id
條件選擇一個數組中的對象。在下面的img我想選擇[0]
。在數組中選擇一個對象
db.users.find({"injury._id": ObjectId("537233061845d2ec10000071")})
Thankx的幫助。
我想用id
條件選擇一個數組中的對象。在下面的img我想選擇[0]
。在數組中選擇一個對象
db.users.find({"injury._id": ObjectId("537233061845d2ec10000071")})
Thankx的幫助。
我在這裏猜測你只想只有看到你正在搜索的文檔中選定的數組元素。使用投影:
db.users.find(
{ "injury._id": ObjectId("537233061845d2ec10000071")},
{ "injury.$": 1 }
)
這只是返回匹配的元素,而不是所有的人。
如果您預計超過一個匹配(不太可能用的ObjectId,但備查)然後使用.aggregate()
方法代替:
db.users.aggregate([
// Match documents first, helps reduce the pipeline
{ "$match": {
"injury._id": ObjectId("537233061845d2ec10000071")
}},
// Unwind the array
{ "$unwind": "$injury" },
// Actually match the elements
{ "$match": {
"injury._id": ObjectId("537233061845d2ec10000071")
}},
// Group back if you really want arrays
{ "$group": {
"_id": "$_id",
"injury": { "$push": "$injury" },
// and use "$first" for any other fields
}}
])
所以,現在你知道當你碰到做什麼那一個也是。
Thankx ...作品不錯...下次我會嘗試發佈它沒有截圖.. :) – Anup
@Anup Thankyou。此外,您還需要在答案中包含基本示例,以便何時需要從數組中過濾**多個**結果。 –
我可以請懇求你**停止張貼截圖**。他們很難嘗試閱讀,並且數據(您至少已經發布了一些文字)能夠更好地表現爲文字,因此人們可以真正使用它。 –
因爲這樣做。你真正的問題是什麼?你想選擇一個帶'_id'值的數組元素還是你想選擇一個數組的索引'0'?然後做什麼? –
我想用'_id'選擇數組元素... – Anup