Sử dụng $cond và $concat trong Aggregation
Toán tử $cond cho phép logic if-else. Kết hợp $concat để nối chuỗi khi điều kiện đúng.
Dữ liệu mẫu
> db.demo745.insertMany([
{ Value1: "100", Value2: "100" },
{ Value1: "40", Value2: "50" },
{ Value1: "13", Value2: "45" }
]);
Truy vấn: giữ bản ghi nơi nối Value1+Value2 = "1345"
db.demo745.aggregate([
{
$redact: {
$cond: [
{ $eq: [ { $concat: ["$Value1", "$Value2"] }, "1345" ] },
"$$KEEP",
"$$PRUNE"
]
}
}
]);
Kết quả
{ "_id": ObjectId("5eae6429a930c785c834e556"), "Value1": "13", "Value2": "45" }
Chỉ bản ghi có nối chuỗi "13"+"45" = "1345" được giữ lại ($$KEEP), các bản ghi khác bị loại ($$PRUNE).