比较两个集合并获取丢失的用户 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});
我有两个集合付款和钱包。每当用户进行一些付款时,此付款信息就会插入付款收集中,并且还会插入进一步的钱包收集。钱包集合将付款 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});