我有两个关于mongodb的文件,分别是百分比和项目。我擅长sql,我可以写plsql查询如下,但我不能转换为mongodb查询。因为我的mongodb知识水平才刚刚起步。
事实上,我知道我必须使用$gt的和条件。但是我不知道我怎么能说mongodb的notexists或者union关键字。如何编写mongodb查询?我应该搜索哪些关键字?
select p.*, "to_top" as list
from percentages p
where p.percentage > 5
and p.updatetime > sysdate - 1/24
and not exists (select 1
from items i
where i.id = p.p_id
and i.seller = p.seller)
order by p.percentage desc
union
select p2.*, "to_bottom" as list
from percentages p2
where p2.percentage > 5
and p2.updatetime > sysdate - 1/24
and exists (select 1
from items i2
where i2.id = p2.p_id
and i2.seller = p2.seller)
order by p2.percentage desc
2条答案
按热度按时间3xiyfsfu1#
根本没有
UNION
对于mongodb。幸运的是,每个查询都在同一个集合上执行,并且条件非常接近,所以我们可以实现“mongo-way”查询。解释
通常,所有复杂的sql查询都是通过mongodb聚合框架完成的。
我们筛选文档的依据
percentage
/updatetime
. 解释为什么我们需要使用$expr
sql联接/子查询是使用$lookup运算符完成的。sql语句
SYSDATE
在mongodb中NOW
或者CLUSTER_TIME
变量。mongoplayground公司
注意:mongodb聚合有$facet操作符,允许对同一集合执行不同的查询。
架构:
mongoplayground公司
4uqofj5v2#
为什么不将mangodb数据导入oracle并使用sql(这比mango更简单、更强大)