我想更新或推送产品列表中的产品,
为了获得更好的性能,我通过
date/hours[hour]/categories[category]
EX 进行过滤:
{
date: "05/05/24",
"hours.hour": "09",
"hours.categories.category": "computers",
"hours.categories.products": {
$elemMatch: { product_source_id: 112233},
}
}
如果路径存在我想更新产品, 如果某些路径(例如小时/类别/等)不存在,我想创建它。
“upsert”对我没有帮助,因为它只是创建一个全新的文档,但我想修改现有的文档
这是文档场景
date: { type: String, required: true },
hours: [
{
hour: { type: String, enum: hoursEnum },
categories: [
{
category: { type: String, required: true },
products: [
{
product_source_id: { type: String, required: true },
last_published: { type: Date, required: true },
},
],
},
],
},
]
看来我从一开始就错了
我应该将文档简化为浅层(更少的嵌套键)并使用“索引”进行高效搜索