对于一个MySQL查询都可以将其转换成mongodb语句,其转换顺序如下
一,首先分析sql语句的执行顺序
二,针对其顺序进行mongodb语句拼凑
例:
select count(*) as total from table where name='aaa' group by sex;
首先是执行 where
然后在group by 各个分组内部执行count
所以mongodb语句为
db.table.aggregate(
[
{$match:{name:'aa'}},//先where 如果$match在$group后面 那么就相当于 sql 里面的having
{$group:{_id:'$sex', total:{$sum:1}}}//后where 内部嵌套 count
]
);
针对子查询也是类似的分解