在可能不存在的字段上validation$ regex

name: { $regex: /^.{0,200}$/ } 

如果名称字段不能保证存在,可以使用MongoDB文档validation完成这种validation吗? 因为现在我得到validation错误,如果该名称字段不存在

根据你的问题和评论,你会想要在你的集合中定义validation,这样你就可以validation名称字段与正则expression式是否存在。 为了实现这一点,添加$存在这样的validation器为false。

 db.createCollection( "contacts", { validator: { $or: [ { name: { $exists: false} }, { name: { $regex: /^.{0,200}$/ } } ] } } ) 

如果你想允许这样的事情

 { name: null } 

你也可以添加$ ne来validation

  $ne: null 

这有帮助吗?

在您的查询中使用$ exists存在示例:

 db.inventory.find( { name: { $exists: true, $regex: /^.{0,200}$/ } } ) 

有关更多$存在您可以参考下面的链接

链接

希望这可以解决你的问题