我想在id
条件的数组中选择一个对象。在下面的img中我想选择[0]
。
db.users.find({"injury._id": ObjectId("537233061845d2ec10000071")})
感谢谢谢。
答案 0 :(得分:2)
我在这里猜测你想要 查看你要搜索的文档中的所选数组元素。使用投影:
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
}}
])
所以现在你知道当你遇到那个时该怎么做。