mongodb - 使用验证规则更新 mongodb 集合时如何禁止未知属性?
问题描述
这是https://stackoverflow.com/posts/38101932的副本 但是由于那里的 anwser 已经过时并且链接的“解决方案”不是直接答案,我再次发布它。
我想禁止未在架构中声明的额外属性。例如,如果架构说:
"group1.a": {
"$type": "int"
},
"group1.b": {
"$type": "int"
}
我希望以下文件失败:
{
"group1": {
"a": 1,
"b": 2,
"c": 3
}
}
我究竟如何利用 jsonShema 来完成这项工作?
解决方案
找到了!
有两件事必须做:
- 添加
additionalProperties: false
到$jsonSchema
- 添加
_id
具有bsonType: objectId
显式属性的字段,否则每次更新都会失败(除非您在将新文档插入集合时未显式设置 _id)。
推荐阅读
- docker - 如何在 Docker compose 3 中设置 path.repo?
- c - USART1 在 STM32F103ZE 中接收
- python - Visual Studio Code Python 路径设置不正确
- node.js - React API 测试与 Nock 失败并出现“错误:Nock:请求不匹配”
- r - dplyr,dunn 测试,dim(robj) <- c(dX, dY) 中的错误:dims [product 0] 与对象的长度不匹配
- php - 调用未定义的方法 GetStream\\Stream\\Feed::followFeed()
- javascript - 如何在 JavaScript 中找到表单验证不起作用
- python - 如何在 python 中使用 selenium 单击 html '按钮类'
- java - 如何使用 apache POI 或 PDFBox 将 Excel 转换为 PDF
- css - CSS位置静态力选择自动完成的下拉菜单在执行选择后不关闭