第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

既然mongodb不對數(shù)據(jù)結(jié)構(gòu)做約束,為什么不干脆連數(shù)據(jù)類型也不做約束呢?

既然mongodb不對數(shù)據(jù)結(jié)構(gòu)做約束,為什么不干脆連數(shù)據(jù)類型也不做約束呢?

月關(guān)寶盒 2023-04-04 18:14:59
我想提出的問題是,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)換之類的。你們有什么看法嗎?
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

檢索效率是和存儲方式是永遠沒辦法規(guī)避的,三種類型的存儲字節(jié)長度決定了其查詢和計算的效率是不可能一致的,nosql再怎么優(yōu)化也只是在策略層面,畢竟存儲層更多看的是介質(zhì)本身的性能。

查看完整回答
反對 回復 2023-04-07
?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

The Zen of Python 里面有兩句 (可以在python cli 中調(diào)用 import this 查看):

Explicit is better than implicit.
Simple is better than complex.

第一句可以解釋mongodb 的 的強類型
第二句可以解釋mongodb 的 schema-less

python 就是這樣的。動態(tài)語言,但是需要顯示的類型轉(zhuǎn)換。這是一種更嚴謹?shù)墓ぷ鞣绞健?/p>

用php 的 driver 的確會遇到這種問題,只能在查詢時手動處理了。


查看完整回答
反對 回復 2023-04-07
  • 2 回答
  • 0 關(guān)注
  • 272 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號