【发布时间】:2019-02-07 12:45:02
【问题描述】:
我对 mongodb 非常陌生,因此我广泛使用 SQL,我想尝试对 mongo 做同样的事情,就像我对 SQL 查询所做的那样。
我有 2 个收藏:
航班 属性: ID(字符串) 已验证(字符串) 有效(字符串)
使命 属性: ID(字符串) 航班(航班数组)
我需要根据如下所示的 SQL 查询检索数据(理论上):
SELECT VERIFIED, VALID
FROM FLIGHT
WHERE FLIGHT.ID IN
( SELECT FLIGHTS
FROM MISSION
WHERE MISSION.ID = "somestring"
AND
FLIGHT.ID = MISSION.FLIGHTS)
集合中的文档示例:
航班
{
"_id": ObjectId("5c4ae5b6a2ac3bc9f2e1b943"),
"verified": "true",
"valid": "true"
}
使命
{
"_id": ObjectId("5c5acdd8bbf999dc34d96de7"),
"flights":[
ObjectId("5c4ae5b6a2ac3bc9f2e1b943"),
ObjectId("5c4ae5eea2ac3bc9f2e1b961")
]
}
我很困惑如何使用“$lookup”和“$unwind”。
简单来说,我的聚合目的是:
我需要检索 ID 为“somestring”的 MISSION 中存在的所有 FLIGHTS 的 VALID 和 VERIFIED
【问题讨论】:
-
你能展示这两个集合的样本数据吗