【发布时间】:2020-03-13 23:13:30
【问题描述】:
我有一个 MongoDB 文档结构,如下所示:
结构
{
"stores": [
{
"items": [
{
"feedback": [],
"item_category": "101",
"item_id": "10"
},
{
"feedback": [],
"item_category": "101",
"item_id": "11"
}
]
},
{
"items": [
{
"feedback": [],
"item_category": "101",
"item_id": "10"
},
{
"feedback": ["A feedback"],
"item_category": "101",
"item_id": "11"
},
{
"feedback": [],
"item_category": "101",
"item_id": "12"
},
{
"feedback": [],
"item_category": "102",
"item_id": "13"
},
{
"feedback": [],
"item_category": "102",
"item_id": "14"
}
],
"store_id": 500
}
]
}
这是集合中的单个文档。删除某些字段以生成数据的最小表示。
我想要的是仅当 items 数组中的 feedback 字段不为空时才获取项目。预期结果是:
预期结果
{
"stores": [
{
"items": [
{
"feedback": ["A feedback"],
"item_category": "101",
"item_id": "11"
}
],
"store_id": 500
}
]
}
这是我根据this 中的示例尝试的方法,我认为情况几乎相同,但它不起作用。我的查询有什么问题,链接中的 zipcode search 示例中的情况是否相同?它返回第一个 JSON 代码中的所有内容,结构:
我尝试了什么
query = {
'date': {'$gte': since, '$lte': until},
'stores.items': {"$elemMatch": {"feedback": {"$ne": []}}}
}
谢谢。
【问题讨论】:
-
你在 stores 数组的第一个对象中也有 store_id 吗?请提及您的 mongoDB 版本..
-
它是否有效或仍有问题?
-
我试过了,但实际上还是有问题。我会通知你更多。感谢您的回答。