zoukankan      html  css  js  c++  java
  • 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、控制循环,如果数据量小的话就不用控制了,我的数据量太多了。

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

  • 相关阅读:
    AUTOSAR-文档中所使用的UML文件
    开心一下-实现基于Java一个中文编程语言
    HDU 1026 Ignatius and the Princess I
    HDU 2553 (状压) N皇后问题 (2)
    UVa 11825 (状压DP) Hackers' Crackdown
    UVa 10891 (博弈+DP) Game of Sum
    LA 2965 Jurassic Remains
    HDU 2126 (背包方法数) Buy the souvenirs
    POJ 3984 迷宫问题
    POJ 3287 (基础BFS) Catch That Cow
  • 原文地址:https://www.cnblogs.com/lingfengblogs/p/4234378.html
Copyright © 2011-2022 走看看