一、數據控制
mongodb操作數據量控制,千萬控制好,不要因為操作的數據量過多而導致失敗。
演示一下發生此類錯誤的錯誤提示:
二、多表關聯查詢實現
/* 聲明變量bridge,用來記錄兩個集合所連接的橋梁。 相當於sql語句中的Join on語句,on后邊跟的條件。 有了橋梁以后,再進行關聯那就是易如反掌的事情啦。 關聯橋梁所存儲的數據是什么樣的類型就需要根據你自己的需求來進行創建了。 我這里用一個對象來作為橋梁,然后調用對象中的屬性。 */ var bridge = db.info.findOne(); /* javaScript語言是弱類型的語言,對於返回值是什么樣的類型一定要做到心中有數。 在執行db.info.findOne()語句后,這里的返回值可以理解為一個對象,類似於一個javaBean 而在這里存儲的所有的字段以及字段值(我用sql語句的說法更易理解)相當於對象的屬性。 */ print(bridge.userid) /* 使用print語句可以打印出上面語句返回的對象信息,進一步驗證返回值是否如我們的猜測。 在這里userid這個字段本來是集合中的一個文檔名稱,即理解為一個表中的字段名稱。 這里卻相當於一個對象的屬性。 */ //循環用什么都可以,只要能夠控制住次數,千萬不要因為數據量太大而導致操作失敗。 for(info = db.info.findOne({"userid":bridge.userid}), //以上這句代碼就是用來匹配集合中符合條件的,可以是任意mongodb的查詢語句 //只要語句滿足你的需求就可以,可以靈活變換。 error = db.warning.findOne({"userid":bridge.userid}), //上邊的這條語句同上 i = 0;i<1;i++){//這里就是控制循環次數的啦。 print(info,error); //打印出我們匹配后的結果。 //關聯查詢如此簡單。 }
我的查詢結果:
logtype其實就是我的集合名稱。
綜上:其實就兩個點。
1、明確橋梁
2、控制循環,如果數據量小的話就不用控制了,我的數據量太多了。
不管你有多少表,我相信只要掌握住此思路,一定可以輕松的寫出多表關聯代碼,輕松實現多表關聯。