我与mongodb 二三事(6)

时间:2021-04-09 08:47:13

        学过rdbms的sql语句, 都知道函数的使用,大大提高了开发的效率吧!!! 

       那nosql数据库中是否还有这些函数,答案是肯定的。

       在这节中,我们将一起学习这些函数,从而,来体会他所带来的便利。

        在nosql中有这样子的一个场景,我要计算foo的记录的总条数。

          如果,不用聚合函数,他的聚合的函数应该是这样的。

          相应的sql语句是这样的。  

           

var foos=db.foo.find();
var count=0;
while(foos.hasNext()){
.. count=count+1;
.. print(count);
.. foos.next();
.. }

   执行结果如图所示:

   

我与mongodb 二三事(6)

    如果用聚合函数来解决,就是一句话的事情

    相应的sql的语句为: db.foo.count();

   执行结果如图所示:

  

我与mongodb 二三事(6)

    由此可见聚合函数的好处吧! 简单

     我们再看下一个运用场景吧,剔除表中重复的行。

   db.runCommand({"distinct":"foo","key":"apple","key":"watermelon"});

执行结果如图所示:

  

我与mongodb 二三事(6)

如果不是通过distinct的聚合函数的吧,那么他只能写一个自定义的MapRedure 由此可见 聚合函数带来的巨大的好处,爽啊

正是有了函数,才能达到了编程最高的境界,write less,do more. 我们要勤用函数,使我们mongodb的之旅更简单。

当然,我上述介绍的函数只是冰山一角,更多的需要我们不断学习,总结