【发布时间】:2019-03-04 15:11:03
【问题描述】:
我需要帮助,我正在尝试更新 content 数组内部的数据 stage 数组:
{
"_id": ObjectId("5a95b1581ddd0d2c60b90612"),
"country": "Chile",
"name": "Xiaomi",
"start": new Date("2018-02-28T00:00:00-0300"),
"end": new Date("2018-03-03T00:00:00-0300"),
"budget": 5000000,
"instructions": "efaw",
"status": null,
"createdAt": new Date(1519568976029),
"budgetAccum": 2465914.3070999998599,
"brief": {
"stage": [
{
"cantPost": 1,
"cantStories": 1,
"desc": "Descripción",
"title": "Title of etapa",
"_id": ObjectId("5bad2e6814bc8ae0450d79a1"),
"content": [
{
"id": 1,
"desc": "Descripción contenido",
"hashtions": "#hashtag / @mentions",
"media": "photo or video",
"participants": [
],
"type": "post or history",
"title": "Title of contenido"
}
]
}
]
}
}
我的查询是这样的:
const updateContent = await this.update({
"_id": ObjectId(campaignId),
"brief.stage._id": ObjectId(data.id),
"brief.stage.content.id": data.idContent
}, {
"$set": {
"brief.stage.content.$.desc": data.content.desc,
"brief.stage.content.$.hashtions": data.content.hashtions,
"brief.stage.content.$.media": data.content.media,
"brief.stage.content.$.participants": data.content.participants,
"brief.stage.content.$.type": data.content.type,
"brief.stage.content.$.title": data.content.title,
}
});
错误是这样的:
{ “数据”: {}, "message": "不能使用部分(stage of brief.stage.content.0.desc)遍历元素({stage: [ { cantPost: 1, cantStories: 1, desc: \"Descripción\", title: \"etapa 的标题\", _id: ObjectId('5bad2e6814bc8ae0450d79a1'), content: [ { id: 1, desc: \"Descripción contenido\", hashtions: \"#hashtag / @mentions\", media: \"照片或视频\",参与者:[],类型:\"post or history\",标题:\"Contenido 标题\"}]},{ cantPost: 1, cantStories: 1, desc: \"Descriptción\" , title: \"etapa 的标题\", _id: ObjectId('5bad3932206981e377a31971'), content: [ { hola: \"true\", adios: \"false\" } ] } ]})", "name": "活动引擎", "type": "BAD_REQUEST", “状态码”:400
任何解释,我该如何解决?
谢谢
【问题讨论】:
-
你的mongodb版本是多少?你可以在这里使用
arrayFilters -
版本是这个^4.1.2