mongodb操作之使用javaScript实现多表关联查询

一、数据控制

  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、控制循环,如果数据量小的话就不用控制了,我的数据量太多了。

不管你有多少表,我相信只要掌握住此思路,一定可以轻松的写出多表关联代码,轻松实现多表关联。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。