java调用js查询mongo_mongodb操作之使用javaScript实现多表关联查询
一、數(shù)據(jù)控制
mongodb操作數(shù)據(jù)量控制,千萬控制好,不要因?yàn)椴僮鞯臄?shù)據(jù)量過多而導(dǎo)致失敗。
演示一下發(fā)生此類錯(cuò)誤的錯(cuò)誤提示:
二、多表關(guān)聯(lián)查詢實(shí)現(xiàn)
/*
聲明變量bridge,用來記錄兩個(gè)集合所連接的橋梁。
相當(dāng)于sql語句中的Join on語句,on后邊跟的條件。
有了橋梁以后,再進(jìn)行關(guān)聯(lián)那就是易如反掌的事情啦。
關(guān)聯(lián)橋梁所存儲的數(shù)據(jù)是什么樣的類型就需要根據(jù)你自己的需求來進(jìn)行創(chuàng)建了。
我這里用一個(gè)對象來作為橋梁,然后調(diào)用對象中的屬性。
*/
var bridge = db.info.findOne();
/*
javaScript語言是弱類型的語言,對于返回值是什么樣的類型一定要做到心中有數(shù)。
在執(zhí)行db.info.findOne()語句后,這里的返回值可以理解為一個(gè)對象,類似于一個(gè)javaBean
而在這里存儲的所有的字段以及字段值(我用sql語句的說法更易理解)相當(dāng)于對象的屬性。
*/
print(bridge.userid)
/*
使用print語句可以打印出上面語句返回的對象信息,進(jìn)一步驗(yàn)證返回值是否如我們的猜測。
在這里userid這個(gè)字段本來是集合中的一個(gè)文檔名稱,即理解為一個(gè)表中的字段名稱。
這里卻相當(dāng)于一個(gè)對象的屬性。
*/
//循環(huán)用什么都可以,只要能夠控制住次數(shù),千萬不要因?yàn)閿?shù)據(jù)量太大而導(dǎo)致操作失敗。
for(info = db.info.findOne({"userid":bridge.userid}),
//以上這句代碼就是用來匹配集合中符合條件的,可以是任意mongodb的查詢語句
//只要語句滿足你的需求就可以,可以靈活變換。
error = db.warning.findOne({"userid":bridge.userid}),
//上邊的這條語句同上
i = 0;i<1;i++){//這里就是控制循環(huán)次數(shù)的啦。
print(info,error);
//打印出我們匹配后的結(jié)果。
//關(guān)聯(lián)查詢?nèi)绱撕唵巍?/p>
}
我的查詢結(jié)果:
logtype其實(shí)就是我的集合名稱。
綜上:其實(shí)就兩個(gè)點(diǎn)。
1、明確橋梁
2、控制循環(huán),如果數(shù)據(jù)量小的話就不用控制了,我的數(shù)據(jù)量太多了。
不管你有多少表,我相信只要掌握住此思路,一定可以輕松的寫出多表關(guān)聯(lián)代碼,輕松實(shí)現(xiàn)多表關(guān)聯(lián)。
總結(jié)
以上是生活随笔為你收集整理的java调用js查询mongo_mongodb操作之使用javaScript实现多表关联查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奥密克戎最新研究数据公布:在人体中复制速
- 下一篇: 别让老板看到 Win应用商店上线摸鱼应用