AdditionalProperties模式会使文档无效

时间:2019-07-12 20:30:17

标签: python mongodb nosql

我需要使用MongoDB创建一个Document数据库,但是在使用'additionalProperties'模式时遇到了问题。当我向其添加架构时,它将使我拥有的所有文档失效。

这是我正在创建的收藏集

db.createCollection('SurveyAns', {
    validator: {
        $jsonSchema: {
            bsonType: 'object',
            required: ['panelist_id', 'last_question', 'end_status'],
            properties: {
                panelist_id: {
                    bsonType: 'array',
                    items: {
                        oneOf: [{
                            bsonType: 'string'
                        }]
                    }
                },
                last_question: {
                    bsonType: 'array',
                    items: {
                        oneOf: [{
                            bsonType: 'string'
                        }]
                    }
                },
                end_status: {
                    bsonType: 'array',
                    items: {
                        oneOf: [{
                            bsonType: 'string'
                        }]
                    }
                }
            },
            additionalProperties: {
                bsonType: 'array',
                items: {
                    oneOf: [{
                        bsonType: 'string'
                    }]
                }
            }
        }
    }
})

这是我要插入的文档:

ans = {
    'panelist_id': ['454'],
    'last_question': ['q5'],
    'end_status': ['scr'],
    'q1': ['1'],
    'q2': ['algo', 'outro', '2'],
    'q3': ['4', '4', 'comentario'],
    'g4': ['1,3,5'],
    'q5': ['5']
}

如果我从collectionCreate中删除“ additionalProperties”,它就可以正常工作,但是我需要指定所有其他属性必须为字符串列表。

编辑:使其正常工作,在其插入项上插入一个'_id'属性(即ObjectId),必须将其添加到属性部分。

0 个答案:

没有答案