У меня есть коллекция с данными:
{
"_id": { "$oid":"5c3334a8871695568817ea26" },
"country":"Afghanistan",
"code":"af",
"region":[
{
"path":["Afghanistan"],
"_id":{"$oid":"5c3366bd3d92ac6e531dfb43"},
"name":"Badakhshan",
"city":[]
},
...
]
},
И мне нужно добавить города (массив) в поле города. Моя модель выглядит так:
const schema = new mongoose.Schema({
country: { type: String },
code: { type: String },
region: [{
name: { type: String },
path: { type: Array },
city: [{
name: { type: String },
path: { type: Array },
latitude: { type: String },
longitude: { type: String },
}],
}],
})
Я отправляю запрос
Model.updateOne(
{ code: country.code },
{ $push: { 'region.city': { $each: savedCities } } },
)
.exec()
и получите ошибку MongoError: Невозможно создать поле 'city' в элементе {region: [..... В чем моя ошибка? Я смотрел похожие темы но не нашел ответа.
В частности. Спасибо, я не уточнил, где сохранить.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать $ позиционный оператор, чтобы указать, какой элемент массива region следует обновить, попробуйте:
Model.updateOne(
{ code: country.code, 'region.name': 'Badakhshan' },
{ $push: { 'region.$.city': { $each: savedCities } } },
)
Хотите добавить эти города в каждый регион или в этот конкретный (Бадахшан)?