Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB JSON验证未通过_Json_Mongodb_Jsonschema_Json Schema Validator_Mongodb Shell - Fatal编程技术网

MongoDB JSON验证未通过

MongoDB JSON验证未通过,json,mongodb,jsonschema,json-schema-validator,mongodb-shell,Json,Mongodb,Jsonschema,Json Schema Validator,Mongodb Shell,我用验证器创建了一个非常基本的计数器集合。我还放了一个方法来调用它。在该方法中,我有一个findAndModify函数来更新序列。当我调用它时,只有当我将其级别更改为中等时,它才会通过验证程序。这里有什么问题 这是我的验证方案。 db.createCollection('counter', { validator: { $jsonSchema: { bsonType: 'object', required: ['sequence_value'],

我用验证器创建了一个非常基本的计数器集合。我还放了一个方法来调用它。在该方法中,我有一个findAndModify函数来更新序列。当我调用它时,只有当我将其级别更改为中等时,它才会通过验证程序。这里有什么问题

这是我的验证方案。

db.createCollection('counter', {
   validator: {
     $jsonSchema: {
       bsonType: 'object',
       required: ['sequence_value'],
       properties: {
         sequence_value: {
           bsonType: 'int'
         }
       }
     }
   }
 });
这是自动更新功能。

function getValueForNextSequence(sequenceOfName) {
    var sequenceDoc = db.counter.findAndModify({
        query: { _id: sequenceOfName },
        update: { $inc: { sequence_value: 1 } },
        new: true
    });
    return sequenceDoc.sequence_value;
}
db.user.insert({
    _id: getValueForNextSequence("user_id"),
    name: "Heggo",
    surname: "Ruffo",
    phone: "5879885858",
    roles: ["Logistic"],
    password: "d1e8a70b5ccab1dc2f56bbf7e99f064a660c08e361a35751b9c483c88943d082"
})
2020-03-09T13:12:48.559+0300 E QUERY    [js] Error: findAndModifyFailed failed: {
        "ok" : 0,
        "errmsg" : "Document failed validation",
        "code" : 121,
        "codeName" : "DocumentValidationFailure"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBCollection.prototype.findAndModify@src/mongo/shell/collection.js:736:1
getValueForNextSequence@(shell):2:23
@(shell):1:1
这是我要插入调用的shell命令。

function getValueForNextSequence(sequenceOfName) {
    var sequenceDoc = db.counter.findAndModify({
        query: { _id: sequenceOfName },
        update: { $inc: { sequence_value: 1 } },
        new: true
    });
    return sequenceDoc.sequence_value;
}
db.user.insert({
    _id: getValueForNextSequence("user_id"),
    name: "Heggo",
    surname: "Ruffo",
    phone: "5879885858",
    roles: ["Logistic"],
    password: "d1e8a70b5ccab1dc2f56bbf7e99f064a660c08e361a35751b9c483c88943d082"
})
2020-03-09T13:12:48.559+0300 E QUERY    [js] Error: findAndModifyFailed failed: {
        "ok" : 0,
        "errmsg" : "Document failed validation",
        "code" : 121,
        "codeName" : "DocumentValidationFailure"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBCollection.prototype.findAndModify@src/mongo/shell/collection.js:736:1
getValueForNextSequence@(shell):2:23
@(shell):1:1
和输出日志…

function getValueForNextSequence(sequenceOfName) {
    var sequenceDoc = db.counter.findAndModify({
        query: { _id: sequenceOfName },
        update: { $inc: { sequence_value: 1 } },
        new: true
    });
    return sequenceDoc.sequence_value;
}
db.user.insert({
    _id: getValueForNextSequence("user_id"),
    name: "Heggo",
    surname: "Ruffo",
    phone: "5879885858",
    roles: ["Logistic"],
    password: "d1e8a70b5ccab1dc2f56bbf7e99f064a660c08e361a35751b9c483c88943d082"
})
2020-03-09T13:12:48.559+0300 E QUERY    [js] Error: findAndModifyFailed failed: {
        "ok" : 0,
        "errmsg" : "Document failed validation",
        "code" : 121,
        "codeName" : "DocumentValidationFailure"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBCollection.prototype.findAndModify@src/mongo/shell/collection.js:736:1
getValueForNextSequence@(shell):2:23
@(shell):1:1