資料庫系統之MongoDB Validations

2021-10-14 16:23:32 字數 2684 閱讀 2575

json/bson資料模型的半結構化和無模式屬性允許對資料庫結構進行非常靈活的操作。

與此同時,資料庫結構的靈活和不受控制的操作也很容易造成資料庫結構和資料庫內容的破壞,例如,由於隨機錯誤。

mongodb提供了在更新和插入(不是刪除)期間驗證文件(validate documents)的能力。

驗證規則具體來說就是使用createcollection() 方法的validator選項。

可以使用collmod命令在驗證器選項中來開啟或關閉驗證規則。

從3.6版開始,mongodb支援json模式驗證。

json模式驗證是執行模式驗證的推薦方法。

型別約束確定與鍵關聯的值的型別。

舉個例子:

在建立乙個集合department時,我們確保與name關聯的值是string型別,與budget關聯的值是double型別。

db.

createcollection

("department",,

"code":,

"total staff number":,

"budget":}

});

數字的預設型別是double,例如" budget ":2000

下面插入乙個文件可以通過驗證:

db.department.

insert()

;

巢狀結構的型別驗證:

db.

createcollection

("department",,

"address.street":,

"address.city":,

"address.country":}

});

建立針對department裡的address驗證。

存在約束確定特定的鍵:值對是強制性的還是可選的。

如果是強制的,那麼在insert時必須要包含這個鍵的值。

db.

createcollection

("department",}

,}]}

});

要麼是個string型別,要麼可以沒有。

db.

createcollection

("department",}

,}]}

,},}

]}]}

});

兩個必須要有乙個,但是不能都有。

域約束可以精確地確定鍵:值對中的值的取值範圍。

預算的值必須是小於或等於1000000的正數:

db.

createcollection

("department",}

,},}

]}})

;

json模式是乙個json文件,用於定義驗證、文件和互動控制的json資料結構。

json文件的json模式驗證是通過驗證文件的結構和內容與json模式的一致性來執行的。

在mongodb中,操作符$jsonschema根據給定的json模式驗證文件。

j so

nsch

ema操

作符也可

以用於f

ind命

令或

jsonschema操作符也可以用於find命令或

jsonsc

hema

操作符也

可以用於

find

命令或match聚合階段的查詢。

舉個json模式驗證的例子:

db.

createcollection

("department",,

"address":,

"street":}

}}}}

});

注意json模式驗證與其他驗證格式的區別。同時,要注意文件的套嵌結構。

在這裡中,文件的結構如下:

}

如果要對乙個陣列進行驗證:

months":
在這裡陣列裡的內容為文字。

可以設定不同的驗證級別:warn和strict。

驗證級別warn接受在日誌中記錄警告的文件。

db.

createcollection

("department",,

"code":,

"total_staff_number":,

"budget":}

,"validationaction"

:"warn"})

;

上面的驗證通過後可以在日誌檔案的記錄中檢視警告的文件。

可以向已經存在的集合中新增validator:

db.

runcommand(,

"code":,

"total staff number":,

"budget":}

},"validationaction"

:"error"

,"validationlevel"

:"strict"})

;

mongodb manual, document validations

資料庫系統mysql MySQL資料庫系統

1 mysql的特點 1 多執行緒 多使用者 2 基於c s 客戶端 伺服器 架構 3 簡單易用 查詢速度快 4 安全可靠 2 mysql編譯安裝 代表鍵盤上tab鍵 1 準備工作 解除安裝使用rpm方式安裝的mysql rpm e mysql nodeps 安裝cmake包 cd media ta...

資料庫系統 資料庫 資料庫管理系統 資料庫系統

繼續寫資料庫系統的文章,第二篇 資料庫 資料庫管理系統 資料庫系統。本文主要談談這三者之間的關係。下方,摘自老師的ppt,非原創。資料庫管理系統 從系統角度看資料庫管理系統 資料庫系統 資料庫指的是長期儲存在計算機內有組織的,大量的,相關聯的,可共享的資料集合。資料應當是有組織的,不應該是雜亂無章的...

資料庫 資料庫系統 1 資料庫系統概述

本節先對資料庫系統有個全貌的了解。資料庫 database,是長期儲存在計算機內 有組織的 可共享的大量資料的集合 資料庫管理系統 dbms,位於使用者與os之間的一層資料管理軟體,負責科學地組織和儲存資料 高效地獲取和維護資料,功能包括 資料庫系統 dbs,是資料庫 資料庫管理系統 應用程式 資料...