我需要验证只有以下值是可接受的 - 如果用户提供Home Address
,例如脚本需要更新文档和$push
验证字段...类似于:
“验证”:“地址元素验证失败| Address.type值:邮寄地址,帐单地址”。
{
"Addresses":[
{
"type":"Mailing Address"
},
{
"type":"Billing Address"
}
]
}
此外,阵列不必具有两种地址类型......可能只有“邮件地址”或“计费地址”,或者没有(空数组)。但是一旦提供了类型 - 它必须仅包含上述类型。
答案 0 :(得分:0)
您可以使用mongoDB提供的文档验证程序功能。
db.createCollection( "your collection name",
{ validator: { $or:
[
{ "Addresses": { $exits: true } },
{ "Addresses.type": { $in: [ "Mailing Address", "Billing Address" ] } }
]
}
} )
这样可确保地址字段存在且包含邮寄地址或帐单邮寄地址。如果除了这个之外的任何东西都会抛出错误。
您也可以控制验证级别。浏览一下页面,以便深入了解mongo文档验证器的工作原理。