我试图只获取那些没有订单的产品,所以每个产品都有一个订单 ID,这些审计表与订单相关联,但现在这些订单已被删除,我需要找到那些没有订单的产品。< /p>
我知道在进行聚合时,如果加入的集合没有记录,它不会将任何内容作为“文档”返回,但是我怎样才能让它只返回我的文档 == 空或空..
db.products.aggregate([
{
$match: {
$and: [
{ "docs": { $exists: false } }
]
}
},
{
$lookup: {
from: "orders",
localField: "orderId",
foreignField: "orderId",
as: "docs"
}
},
{
$unwind:
{
path: "$docs",
preserveNullAndEmptyArrays: true
}
},
{ $limit: 10 }
]).pretty()
答案 0 :(得分:0)
db.products.aggregate([
{
$lookup: {
from: "orders",
localField: "orderId",
foreignField: "orderId",
as: "docs"
}
},
{ $match: { docs: [] },
{ $limit: 10 }
]).pretty()