name: {
$regex: /^.{0,200}$/
}
如果不保证名称字段存在,是否可以使用MongoDB文档验证进行此类验证?因为现在我得到验证错误,如果该名称字段不存在
答案 0 :(得分:1)
根据您的问题和评论,您可能希望在集合中定义验证,以便根据正则表达式验证名称字段(如果存在)。要实现这一点,请向您的验证器添加$ exists false。
db.createCollection( "contacts",
{ validator: { $or:
[
{ name: { $exists: false} },
{ name: { $regex: /^.{0,200}$/ } }
]
}
} )
如果你想允许这样的东西
{
name: null
}
您还需要在验证中添加$ne
$ne: null
这有帮助吗?
答案 1 :(得分:0)
在查询中使用$ exists 例如:
db.inventory.find( { name: { $exists: true, $regex: /^.{0,200}$/ } } )
有关$存在的更多信息,请参阅以下链接
希望这可以解决您的问题