mongodb是nosql数据库吗 6 NoSQL | MongoDB入门实战教程( 二 )


mongodb是nosql数据库吗 6 NoSQL | MongoDB入门实战教程

文章插图
3 MQL vs SQL
分页查询对比
在SQL中常使用SKIP 和 LIMIT 进行分页查询,在MQL中也有等价操作:
-- SQLSELECTFIRST_NAME AS `名`,LAST_NAME AS `姓`FROM UsersWHERE GENDER = '男'SKIP 100LIMIT 20-- MQLdb.users.aggregate([{$match: {gender: "男"}},{$skip: 100},{$limit: 20},{$project: {'名': '$first_name','姓': '$last_name'}}]);分组查询对比
在SQL中常使用GROUP BY + HAVING 的分组高级查询,在MQL中也有等价操作:
-- SQLSELECT DEPARTMENT,COUNT(NULL) AS EMP_QTYFROM UsersWHERE GENDER = '女'GROUP BY DEPARTMENT HAVINGCOUNT(*) < 10-- MQLdb.users.aggregate([{$match: {gender: '女'}},{$group: {_id: '$DEPARTMENT’,emp_qty: {$sum: 1}}},{$match: {emp_qty: {$lt: 10}}}]);unwind
在MQL中有一个特有的步骤 unwind,它可以实现将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值 。
> db.students.findOne(){name:'张三',score:[{subject:'语文',score:84},{subject:'数学',score:90},{subject:'外语',score:69}]}> db.students.aggregate([{$unwind: '$score'}]){name: '张三', score: {subject: '语文', score: 84}}{name: '张三', score: {subject: '数学', score: 90}}{name: '张三', score: {subject: '外语', score: 69}}End总结
本文简单介绍了MongoDB的Aggregation Framework 以及 如何使用聚合框架进行聚合查询 。
下一篇,我们会学习MongoDB的模式设计中的一些设计模式 。
参考资料
唐建法,《MongoDB高手课》(极客时间)
郭远威,《MongoDB实战指南》(图书)


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: