我想用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