我需要使用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),必须将其添加到属性部分。