【发布时间】:2020-12-22 14:07:08
【问题描述】:
我想查找与产品“bat”匹配的所有元素。我的数据库结构如下
[
{
"key": 1,
"productArray" : [
{
"requirementId": 5,
"product": "bat"
},
{
"requirementId": 6,
"product": "Pen"
},
]
},
{
"key": 2
},
{
"key": 3,
"productArray": [
{
"requirementId": 1,
"product": "bat"
},
{
"requirementId": 2,
"product": "Pen"
},
{
"requirementId": 3,
"product": "bat"
},
{
"requirementId": 4,
"product": "bat"
}
]
}
]
我已尝试以下查询,但此查询仅返回一个匹配元素。
db.collection.find({"key": 3}, {"productArray": {"$elemMatch": { "product": "bat"}}})
以上查询结果如下
[
{
"_id": ObjectId("5a934e000102030405000002"),
"productArray": [
{
"product": "bat",
"requirementId": 1
}
]
}
]
我可以使用 mongodb 查询获得预期的问题输出吗?或者我应该使用另一种方法来解决我的问题:
我的预期输出如下
[
{
"productArray": [
{
"requirementId": 1,
"product": "bat"
},
{
"requirementId": 3,
"product": "bat"
},
{
"requirementId": 4,
"product": "bat"
}
]
}
]
【问题讨论】:
标签: arrays database mongodb object find