Vâng, chỉnh sửa của bạn về cơ bản có câu trả lời. Đơn giản chỉ cần $match
trong đó mảng trống:
db.getCollection('collA').aggregate([
{ "$lookup": {
"from": "collB",
"localField": "_id",
"foreignField": "_id",
"as": "collB"
}},
{ "$match": { "collB.0": { "$exists": false } } }
])
$exists
kiểm tra chỉ số mảng của 0
là cách hiệu quả nhất để hỏi trong một truy vấn "đây có phải là một mảng có các mục trong đó không".