0

我知道对象数据库的好处是可以以您可能会使用它的格式加载和保存数据。但是,如果我从数据库加载对象,在客户端上对其进行操作,然后将其发送回,如何确保新数据不会恶意进入?

[GET] => /users/1

{
  "name": "john doe"
}

[PUT] => /users/1

{
  "name": "john doe",
  "extra properties": "just cluttering your db"
}

这也带来了一个问题,即如何防止将数字设置为 int?是否有可以附加到数据库的模式?你需要使用映射器吗?

4

1 回答 1

0

不确切知道是否有标准模式,但您可以回答您的问题的一件事是使用 mongoDB 文档验证器。它是在 3.2 版中引入的,允许您在更新和插入期间验证文档。它需要在创建集合时定义。

int 案例应该是:

db.createCollection( "users",
   { validator: {
       number: { $type: "int" }
   }
} )

文档验证器支持类型:

https://docs.mongodb.com/manual/reference/operator/query/type/

关于文档验证器的官方信息:

https://docs.mongodb.com/manual/core/document-validation/

于 2016-08-03T22:21:40.720 回答