Я вставил следующий документ в mongoDB
{ "_id" : ObjectId("5be347025dba9f208cc0e03f"),
"subject" : "test_entry_1",
"date" : "Nov11",
"address" : [
{ "country" : "canada",
"province" : "ontario",
"city" : "toronto"
},
{ "country" : "united states",
"states" : "florida",
"city" : "tampa"<br>
} ] }
Когда я пытался использовать обновление документа с помощью
Bson filter = Filters.eq("subject", doc2.get("subject"));
Bson update = new Document("$set",
doc1.append("address.city", "unknown")) ;
coll.updateOne(filter, update);`
Я получаю следующую ошибку:
Исключение в потоке "main" com.mongodb.MongoWriteException: обновление> path 'address.city' приведет к конфликту в 'address'
Я попробовал на оболочке монго команду:
db.debug.update({}, {$set: {"address.$[].city": "unknown"}})
Запись была обновлена без проблем.
Есть идеи о том, что вызывает ошибку в коде Java? Что касается справки, я использую mongodb-drive 3.8.2 и mongo-java-driver 3.6.1