- Mastering MongoDB 3.x
- Alex Giamas
- 253字
- 2021-08-20 10:10:55
collMod
collMod is used to pass flags to a collection modifying the underlying database's behavior.
Since version 3.2, the most interesting set of flags that we can pass to a collection is document validation.
Document validation can specify a set of rules to be applied to new updates and inserts into a collection. This means that current documents will get checked if they get modified.
We can only apply validations to documents that are already valid if we set validationLevel to moderate. By specifying validationAction we can log documents that are invalid by setting it to warn or prevent updates from happening altogether by setting it to error.
For example, with the previous example of BookOrders we can set a validator on the isbn and name fields being present for every insert or update like this:
> db.runCommand( { collMod: "bookOrders",
"validator" : {
"$and" : [
{
"isbn" : {
"$exists" : true
}
},
{
"name" : {
"$exists" : true
}
}
]
}
})
Here, we get back:
{ "ok" : 1 }
Then if we try to insert a new document with only the isbn field being present, we get an error:
> db.bookOrders.insert({isbn: 102})
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 121,
"errmsg" : "Document failed validation"
}
})
>
We get an error because our validation failed. Managing validation from the shell is really useful as we can write scripts to manage them and also make sure that everything is in place.
- 高效能辦公必修課:Word圖文處理
- PowerShell 3.0 Advanced Administration Handbook
- 小型電動機實用設計手冊
- Hadoop Real-World Solutions Cookbook(Second Edition)
- 大型數據庫管理系統技術、應用與實例分析:SQL Server 2005
- PyTorch Deep Learning Hands-On
- Android游戲開發案例與關鍵技術
- 大學C/C++語言程序設計基礎
- 工業機器人安裝與調試
- Statistics for Data Science
- 網站入侵與腳本攻防修煉
- 計算機組網技術
- 空間機械臂建模、規劃與控制
- Unity Multiplayer Games
- 智慧未來