允许一切的MongoDB验证

时间:2018-09-06 20:13:45

标签: mongodb validation

我开始使用MongoDB节点驱动程序,我根本无法通过验证。

我使用查询创建了以下验证对象:

validator: { $in: [
  { name: { $type: "string" } }
]}

这个JSON模式:

validator: {
 $jsonSchema: {
    bsonType: "object",
    required: ["name"],
    properties: {
      name: {
        bsonType: "string",
        description: "is required and must be a string"
      }
    }
  }
}

然后,如果我尝试使用以下结构{name: 2}插入以下文档,则不会添加任何失败的验证。

我已经上下阅读了有关文档验证的mongo和节点驱动程序文档,但是找不到找到这种验证方法。我当前在Express Server版本4.16.3上使用Mongo版本3.6.7和节点驱动程序版本3.1.4。

这是整个代码:

// create a single user
const createSingleUser = (client, db) => {
  db.collection("users").insertOne({
    name: 2
  }, (err, response) => {
    if (err) console.warn(err);
    console.log("new user added!!!!");
    client.close();
  }); // insert one
};

// create collection and add validator
const createUserCollection = client => {
  const MongoDriverData = client.db("MongoDriverData");
  // create the collection and add validation
  MongoDriverData.createCollection( "users", {
    validator: {
      $jsonSchema: {
        bsonType: "object",
        required: ["name"],
        properties: {
          name: {
            bsonType: "string",
            description: "is required and must be a string"
          }
        }
      }
    }, // validator
    validationAction: "error"
  }, (err, results) => {
    console.log( "Collection created!!!" );
    // now insert a user
    createSingleUser(client, MongoDriverData);
  });
};

0 个答案:

没有答案