Ошибка проверки схемы MongoDB при обновлении, но не одна вставка - PullRequest
1 голос
/ 06 августа 2020

У меня есть коллекция Mongodb с проверкой схемы. Я выполнил db.correspondence.validate({full:true}) и получил "nInvalidDocuments" : NumberLong(0)

Я могу вставить документ, но обновление не удается .

MongoDB Enterprise > db.correspondence.find({"correspondenceIdentifier": "ca4697e2-a40c-11ea-a632-0a0a6b0e0000"}).count() 
8

MongoDB Enterprise > db.correspondence.insert({"correspondenceIdentifier": "ca4697e2-a40c-11ea-a632-0a0a6b0e0000",mdmContractIdentifier:'3334444444444444','name':'Vat'});
WriteResult({ "nInserted" : 1 })

MongoDB Enterprise > db.correspondence.find({"correspondenceIdentifier": "ca4697e2-a40c-11ea-a632-0a0a6b0e0000"}).count()
9

MongoDB Enterprise > db.correspondence.find({mdmContractIdentifier:'3334444444444444'}).count()
2

MongoDB Enterprise > db.correspondence.updateOne({"correspondenceIdentifier": "ca4697e2-a40c-11ea-a632-0a0a6b0e0000"},{$set:{mdmContractIdentifier:'3334444444444444'}});
2020-08-05T20:50:28.164-0400 E QUERY    [thread1] **WriteError: Document failed validation** :
WriteError({
        "index" : 0,
        "code" : 121,
        "errmsg" : "Document failed validation",
        "op" : {
                "q" : {
                        "correspondenceIdentifier" : "ca4697e2-a40c-11ea-a632-0a0a6b0e0000"
                },
                "u" : {
                        "$set" : {
                                "mdmContractIdentifier" : "3334444444444444"
                        }
                },
                "multi" : false,
                "upsert" : false
        }
})`
WriteError@src/mongo/shell/bulk_api.js:466:48
Bulk/mergeBatchResults@src/mongo/shell/bulk_api.js:846:49
Bulk/executeBatch@src/mongo/shell/bulk_api.js:910:13
Bulk/this.execute@src/mongo/shell/bulk_api.js:1154:21
DBCollection.prototype.updateOne@src/mongo/shell/crud_api.js:572:17
@(shell):1:1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...