比较两个集合并获取丢失的用户 id 文档

Compare two collections & get the missed user id documents

我有两个集合付款和钱包。每当用户进行一些付款时,此付款信息就会插入付款收集中,并且还会插入进一步的钱包收集。钱包集合将付款 ID 和用户 ID 作为外键。

对于 100 笔交易,不会发生任何一两个钱包插入。

我试图通过比较两个集合来获取遗漏的钱包插入。我从以下查询开始,并更改了多种方式以获得所需的输出。

const missedPayment = await Payment
        .aggregate([
          {
            $lookup: {
              from: "Wallet",
              localField: "_id",
              foreignField: "paymentId",
              as: "missedWallet"
            }
          }
        ])
        .sort({ createdAt: -1 })

我只需要将文件插入到付款收集中而不是电子钱包收集中。提前致谢

尝试此查询以查找插入付款集合但未插入电子钱包集合的文档:

db.Payment.aggregate([
{"$match":{"_id":{"$exists":1}}},
{"$lookup":{"from": "Wallet",
            "localField":"_id",
            "foreignField":"paymentId",
            "as":"missedWallet"
}},
{"$match":{"missedWallet.0":{"$exists":0}}}
],{"allowDiskUse":true});