Обновление встроенного документа точечной нотацией возвращает mongowriteException - PullRequest
0 голосов
/ 08 ноября 2018

Я вставил следующий документ в 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

...