我想提出的問題是,mongodb既然是一個面向文檔的數(shù)據(jù)庫,而且它的存儲格式又是與json如此類似的bson。如此寬松的使用環(huán)境,那么為什么不把步子放更大一點,而對每個字段都要有類型約束呢。比如下面的數(shù)據(jù)結(jié)構(gòu){ 'field_1': 1, 'field_2': '1', 'field_3': true}在腳本語言里,這三個值是相等的,但mongodb可不這樣認為,如果你用string類型去尋找field_1的值,那么永遠找不到??墒窍裨趐hp這種弱類型語言里,本來就是string,int傻傻分不清楚,所以使用mongodb的php程序員經(jīng)常會出現(xiàn)以下杯具場景,你存儲的時候主鍵是一個用函數(shù)生成的int型數(shù)字,但取出記錄的時候可能直接使用前端傳遞過來的GET參數(shù),很不巧它只能是一個string類型,這樣你就永遠找不到這條記錄了。諸如此類的事情還很多,我在想既然mongodb不對數(shù)據(jù)結(jié)構(gòu)做約束,為什么不干脆連數(shù)據(jù)類型也不做約束呢?因為既然不約束結(jié)構(gòu),那么程序中就無法對應出類型,這樣也不好做強制類型轉(zhuǎn)換之類的。你們有什么看法嗎?
既然mongodb不對數(shù)據(jù)結(jié)構(gòu)做約束,為什么不干脆連數(shù)據(jù)類型也不做約束呢?
月關(guān)寶盒
2023-04-04 18:14:59