Sử dụng toán tử $ifNull trong $project để trả về trường thay thế khi trường chính là null. Tạo collection:
> db.demo182.insertOne({ "FirstName": "Chris", "LastName": null });
{ "acknowledged": true, "insertedId": ObjectId("5e398ea19e4f06af55199802") }
> db.demo182.insertOne({ "FirstName": null, "LastName": "Miller" });
{ "acknowledged": true, "insertedId": ObjectId("5e398ead9e4f06af55199803") }
> db.demo182.insertOne({ "FirstName": "John", "LastName": "Smith" });
{ "acknowledged": true, "insertedId": ObjectId("5e398ebf9e4f06af55199804") }
Hiển thị document.
Pipeline aggregate với $ifNull (ưu tiên FirstName, nếu null thì LastName):
> db.demo182.aggregate([
{
$project: {
"item": 1,
"Result": { "$ifNull": [ "$FirstName", "$LastName" ] }
}
}
])
Kết quả:
{ "_id": ObjectId("5e398ea19e4f06af55199802"), "Result": "Chris" }
{ "_id": ObjectId("5e398ead9e4f06af55199803"), "Result": "Miller" }
{ "_id": ObjectId("5e398ebf9e4f06af55199804"), "Result": "John" }