学过rdbms的sql语句, 都知道函数的使用,大大提高了开发的效率吧!!!
那nosql数据库中是否还有这些函数,答案是肯定的。
在这节中,我们将一起学习这些函数,从而,来体会他所带来的便利。
在nosql中有这样子的一个场景,我要计算foo的记录的总条数。
如果,不用聚合函数,他的聚合的函数应该是这样的。
相应的sql语句是这样的。
var foos=db.foo.find();
var count=0;
while(foos.hasNext()){
.. count=count+1;
.. print(count);
.. foos.next();
.. }
执行结果如图所示:
如果用聚合函数来解决,就是一句话的事情
相应的sql的语句为: db.foo.count();
执行结果如图所示:
由此可见聚合函数的好处吧! 简单
我们再看下一个运用场景吧,剔除表中重复的行。
db.runCommand({"distinct":"foo","key":"apple","key":"watermelon"});
执行结果如图所示:
如果不是通过distinct的聚合函数的吧,那么他只能写一个自定义的MapRedure 由此可见 聚合函数带来的巨大的好处,爽啊
正是有了函数,才能达到了编程最高的境界,write less,do more. 我们要勤用函数,使我们mongodb的之旅更简单。
当然,我上述介绍的函数只是冰山一角,更多的需要我们不断学习,总结