Я пытаюсь обновить пару объектов в MongoDB в nodejs. Вот проблема, с которой я столкнулся:
У меня есть массив объектов, который выглядит примерно так:
[{
"_id": {
"$oid": "5ed611265828aa77c978afb4"
},
"advert_id": "5ec2e4a8bda562e21b8c5052",
"isCategory": false,
"name": "2+1 Ev Taşıma",
"value": "2200 TL"
},
{
"_id": "40", // this object is recently added so it doesn't
// have an oid it needs to be inserted instead of updating.
"advert_id": "5ec2e4a8bda562e21b8c5052",
"isCategory": false,
"name": "4+1 Ev Taşıma",
"value": "7000 TL"
},
]
Я пытаюсь обновить каждый из этих объектов, используя collection.updateMany
с upsert: true
Вот код, который я написал:
mongodb.collection('prices').updateMany({}, {$set: post.prices}, {upsert: true}, (error, result) => {
if(error) throw error;
res.json(response);
})
Вот ошибка:
MongoError: Modifiers operate on fields but we found type array instead. For example: {$mod: {<field>: ...}} not
{$set: [ { _id: "5ed611265828aa77c978afb4", advert_id: "5ec2e4a8bda562e21b8c5052", isCategory: false, name: "2+1
Ev Taşıma", value: "2000 TL", isVisible: false } ]}
Проблема заключается в том, что я пытаюсь передать массив цен непосредственно в канал $ set. Что такое тип поля и как я могу преобразовать в него свой массив.
Благодарю за помощь, у меня возникли трудности с поиском в документации, но не удалось найти ни одной связанной главы. Я буду очень признателен, если вы также можете связать часть документации в своем ответе.
Документ базы данных:
{
"_id": {
"$oid": "5ed611265828aa77c978afb4"
},
"advert_id": "5ec2e4a8bda562e21b8c5052",
"isCategory": false,
"name": "2+1 Ev Taşıma",
"value": "2000 TL",
"isVisible": false
}