首页 > 解决方案 > 如何使用 Mongodb 验证器验证非空字段

问题描述

我有一个带有架构的集合:

{
  "name": "Jhon",
  "lname": "Doe",
  "status": "Accepted"
}

我想向这个集合添加一个验证,这样,每当在其中添加任何新文档时,status该文档的字段都不应该为空。

我尝试使用$jsonSchema验证器:

db.createCollection("users", {
    validator: {
       $jsonSchema: {
          bsonType: "object",
          required: [ "name", "status"],
          properties: {
            name: {
                bsonType: "string"
             },
             lname: {
                bsonType:  "string" 
             },
             status: {
                bsonType:  "string" 
             }
          }
       }
    }
 })

但是,这个模式接受文件:

db.users.insert({'name':'abc','status':''})

如何status使用 mongodb 验证器验证该字段不为空?

标签: mongodbvalidation

解决方案


我想到了。
我使用了正则表达式

db.createCollection("users", {
    validator: {
       $jsonSchema: {
          bsonType: "object",
          required: [ "name", "status"],
          properties: {
            name: {
                bsonType: "string"
             },
             lname: {
                bsonType:  "string" 
             },
             status: {
                bsonType:  "string",
                pattern : "^[A-Za-z]+$", 
             }
          }
       }
    }
 })

推荐阅读