Я пытаюсь обновить запись в mongoDB, используя updateOne, запись un update находится в массиве, и все поля обновляются, кроме одного поля, которое является страной. Я попытался обновить его, используя MongoChef (графический интерфейс MongoDB для Linux), но он не работает, также Если я обновляю один документ с помощью Edit в GUI, тогда эта запись готова к обновлению после этого.mongoDB updateOne не обновляет запись
Я попытался с помощью следующего запроса в MongoChef
db.institutions.updateOne({
"campus": { "$elemMatch": { "_id": ObjectId("578500ef87e4c326183e520e")} },
"_id": ObjectId("57f25706762c06cb7d9422fc")
},
{
"$set" : { "campus.$.country" : "SS1"
}
});
Только поле страны не обновляется Если я обновлю любое другое поле он работает отлично.
Структура документа перечислены в
{
"_id" : ObjectId("57f26824762c06cb7d982e37"),
"campus" : [
{
"_id" : ObjectId("578500ee87e4c326183e5201"),
"country" : "GB",
"coreId" : NumberInt(1),
"city" : "Norwich",
}
]
}
Заранее спасибо любая помощь appreciatiable
Можете ли вы показать нам документ, который вы получаете при запросе 'db.institutions.findOne ({" _id ": ObjectId (" 57f25706762c06cb7d9422fc ")})'? – chridam
@chridam Моя находка запрос db.institutions.find ({ "campus.country": "SS1", "_id": ObjectId ("57f26824762c06cb7d982e37") }, { "Кампус": правда }); { "_id": ObjectId ("57f26824762c06cb7d982e37"), "Кампус": [ { "_id": ObjectId ("578500ee87e4c326183e5201"), "страна": "GB", "COREid": NumberInt (14677), «город»: «Норвич» } ] } – Shahbaz
Но это совершенно отличается от запроса в вашем обновлении, где вы запрашиваете для документа с '{«_id»: ObjectId («57f25706762c06cb7d9422fc») } ' – chridam