Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 验证可能不存在的字段上的$regex_Node.js_Mongodb - Fatal编程技术网

Node.js 验证可能不存在的字段上的$regex

Node.js 验证可能不存在的字段上的$regex,node.js,mongodb,Node.js,Mongodb,如果名称字段不能保证存在,这种验证可以通过MongoDB文档验证来完成吗?因为现在如果名称字段不存在,我会得到验证错误请在查询中使用$exists 例如: 有关$exist的更多信息,请参阅下面的链接 希望这可以解决您的问题根据您的问题和评论,您希望在集合中定义验证,以便根据正则表达式(如果存在)验证名称字段。要实现此目的,请向验证器添加$exists false,如下所示 db.inventory.find( { name: { $exists: true, $regex: /^.{0,20

如果名称字段不能保证存在,这种验证可以通过MongoDB文档验证来完成吗?因为现在如果名称字段不存在,我会得到验证错误

请在查询中使用$exists 例如:

有关$exist的更多信息,请参阅下面的链接


希望这可以解决您的问题

根据您的问题和评论,您希望在集合中定义验证,以便根据正则表达式(如果存在)验证名称字段。要实现此目的,请向验证器添加$exists false,如下所示

db.inventory.find( { name: { $exists: true, $regex: /^.{0,200}$/  } } )
如果你想允许这样的事情

db.createCollection( "contacts",
{ validator: { $or:
  [
     { name: { $exists: false} },
     { name: { $regex: /^.{0,200}$/ } }
  ]
}
} )
您还将添加到验证中

{
   name:  null
}

这有帮助吗?

除了使用MongoDB验证器,我不想查询任何东西。使用$exists意味着我希望该字段始终存在或不存在,因为在创建或更新文件时,我不关心该字段是否存在。我只想确保它的长度不超过200是的,就是这样,非常感谢!真不敢相信我是多么愚蠢,我没有意识到你可以为一个字段设置多个规则..:D
{
   name:  null
}
 $ne: null