在Vertx中插入或更新之前,如何使mongo验证文档?

你好

我是使用Vertx的新手,正在使用Javascript使用Vertx + Mongo构建基本的Api Rest。

我正在寻找一种在插入或更新之前自动验证传入文档的方法(例如,类似Mongoose的架构)。

我得到以下内容:

POST入口点插入新猫

var BodyHandler = require("vertx-web-js/body_handler");
var Router = require("vertx-web-js/router");
var router = Router.router(vertx);
router.post("/cat")
    .produces("application/json")
    .handler(BodyHandler.create().handle)
    .handler(controller.createCat);

控制器功能插入新猫

createCat: function (ctx) {
  var response = ctx.response();
  var body = ctx.getBodyAsJson() || {};

  console.log('inserting cat')

  connection.mongoClient.insert("cats", { name: body.name }, function (res, res_err) {
    if (res_err == null) {
      var id = res;
      console.log("Inserted cat with id " + id);
      response.putHeader("content-type", "application/json");
      response.end(JSON.stringify(id));
    } else {
      console.log('err')
      res_err.printStackTrace();
    }
  });
}

问题是我可以插入空文档,结果文档只有一个字段:mongo ID。

TL; DR-我想知道是否可以通过某种方式告诉Mongo名称字段始终为必填项。

我使用的解决方案:

mongoClient.runCommand("collMod", { collMod: "cats", validator: { $and: [ {"name": {$type: "string", $exists: true}} ] }, validationLevel: "strict", validationAction: "error" }, function(res, res_err) {
  if (res_err) res_err.printStackTrace()
  else console.log('The schema of cats collection has been updated')
});

泰格托斯

在mongodb中,存在一个带有用于收集的查询过滤器的验证概念:https : //docs.mongodb.com/manual/core/schema-validation/#query-expressions

如果始终需要“名称”字段,则可以这样创建集合:

db.createCollection("cats", {
  validator: {
    $and: [ {"name": {$type: "string", $exists: true}} ]
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在使用SQL Server插入/更新之前,如何验证数据?

来自分类Dev

如何在mongo中插入带有日期的文档?

来自分类Dev

Mongo更新意外插入文档

来自分类Dev

在不带ObjectId的Mongo中插入文档

来自分类Dev

如何在更新Rails中的ruby之前验证错误消息

来自分类Dev

如何使用Meteor在Mongo中的文档中插入N个元素

来自分类Dev

更新mongo文档时如何使用变量?

来自分类Dev

更新mongo文档时如何使用变量?

来自分类Dev

从春季mongo更新mongodb中的多个文档

来自分类Dev

Vertx:如何在处理正文请求之前验证身份验证?

来自分类Dev

在 MongoDB 中插入或更新多个文档

来自分类Dev

如何用猫鼬需要验证插入猫鼬中的多个文档?

来自分类Dev

如何在mongo中更新文档子数组中的字段

来自分类Dev

如果流星的文档中不存在mongo插入对象

来自分类Dev

如何在NodeJ中手动更新多个Mongo文档?

来自分类Dev

如何在mongo collection中一次运行中查找,迭代和更新文档?

来自分类Dev

在Mongo中,如何根据范围匹配文档?

来自分类Dev

如何访问mongo文档中的字段

来自分类Dev

如何在MongDB中将嵌套文档更新或插入到数组中

来自分类Dev

如何从现有的文件信封中插入/更新文档

来自分类Dev

如何只允许在Meteor中插入和更新某些文档字段?

来自分类Dev

MongoDB:如何说Mongo将插入更新保存在我的本地json文件中

来自分类Dev

MongoDB:如何说Mongo将插入更新保存在我的本地json文件中

来自分类Dev

如何从文档中插入HTML ASCII艺术?

来自分类Dev

如何使用 Pymongo 在文档中插入对象?

来自分类Dev

在将数据插入到SQL for DB2的表中之前,如何对列的值进行大小验证?

来自分类Dev

如何验证插入&删除&更新是在Ms Sql服务器的单个存储过程中完成的

来自分类Dev

Mongo:如何将另一个子文档插入现有文档

来自分类Dev

如何在mongodb中插入带有参考文档的文档

Related 相关文章

  1. 1

    在使用SQL Server插入/更新之前,如何验证数据?

  2. 2

    如何在mongo中插入带有日期的文档?

  3. 3

    Mongo更新意外插入文档

  4. 4

    在不带ObjectId的Mongo中插入文档

  5. 5

    如何在更新Rails中的ruby之前验证错误消息

  6. 6

    如何使用Meteor在Mongo中的文档中插入N个元素

  7. 7

    更新mongo文档时如何使用变量?

  8. 8

    更新mongo文档时如何使用变量?

  9. 9

    从春季mongo更新mongodb中的多个文档

  10. 10

    Vertx:如何在处理正文请求之前验证身份验证?

  11. 11

    在 MongoDB 中插入或更新多个文档

  12. 12

    如何用猫鼬需要验证插入猫鼬中的多个文档?

  13. 13

    如何在mongo中更新文档子数组中的字段

  14. 14

    如果流星的文档中不存在mongo插入对象

  15. 15

    如何在NodeJ中手动更新多个Mongo文档?

  16. 16

    如何在mongo collection中一次运行中查找,迭代和更新文档?

  17. 17

    在Mongo中,如何根据范围匹配文档?

  18. 18

    如何访问mongo文档中的字段

  19. 19

    如何在MongDB中将嵌套文档更新或插入到数组中

  20. 20

    如何从现有的文件信封中插入/更新文档

  21. 21

    如何只允许在Meteor中插入和更新某些文档字段?

  22. 22

    MongoDB:如何说Mongo将插入更新保存在我的本地json文件中

  23. 23

    MongoDB:如何说Mongo将插入更新保存在我的本地json文件中

  24. 24

    如何从文档中插入HTML ASCII艺术?

  25. 25

    如何使用 Pymongo 在文档中插入对象?

  26. 26

    在将数据插入到SQL for DB2的表中之前,如何对列的值进行大小验证?

  27. 27

    如何验证插入&删除&更新是在Ms Sql服务器的单个存储过程中完成的

  28. 28

    Mongo:如何将另一个子文档插入现有文档

  29. 29

    如何在mongodb中插入带有参考文档的文档

热门标签

归档