MongoDB作为 NoSql 的数据库,数据存储就比较随意了,每条记录可拥有不同字段集,但对结构化计算能力方面较弱。比如 MongoDB 不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算。
比如有两个集合 ORDERS、DEALER,查找来自New York的订单信息,要求 ORDERS 订单中的 SELLERID 必须是 DEALER 集合中 STATE='New York'的销售商 PID。如果写成 sql 就是:
Select * from ORDERS where SELLERID in (select PID from DEALER where STATE='New York')
ORDERS | ORDERID | CLIENT | SELLERID | AMOUNT | ORDERDATE |
30 | YZ | 19 | 14600.0 | 2019-11-29 | |
31 | QHHW | 6 | 13800.0 | 2019-12-01 | |
32 | SAVEA | 9 | 5684.0 | 2019-12-08 | |
… | … |
DEALER | PID | NAME |