猫鼬发现其他集合是否存在某种状况

时间:2018-10-02 20:37:39

标签: mongodb mongoose aggregation-framework lookup

我正在尝试在Mongo中执行以下查询,我需要一些帮助。 我有2个收藏集:

收藏1-tutorial_finish : {user_id, completed}

收藏2-name

我要选择其func selectedCell(forCell cell: UITableViewCell) -> IndexPath? { let cellPosition: CGPoint = cell.convert(CGPoint.zero, to: self) return self.indexPathForRow(at: cellPosition) } 为“ John Doe”的所有用户,并且该用户不得 出现

1 个答案:

答案 0 :(得分:1)

您可以使用$lookup来“联接”两个集合中的数据,然后使用$match检查由$lookup创建的数组是否为空:

db.users.aggregate([
    {
        $match: { name: "John", lastname: "Doe" }
    },
    {
        $lookup: {
            from: "tutorial_finish",
            localField: "_id",
            foreignField: "user_id",
            as: "tutorials"
        }
    },
    {
        $match: { tutorials: [] }
    }
])