Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

การใช้ $ifNull ใน MongoDB Aggregation

$ifNull ประเมินนิพจน์ และคืนค่านิพจน์นั้นถ้าไม่ใช่ null มิฉะนั้นคืนค่าที่กำหนดไว้ (default value)

ตัวอย่างข้อมูลทดสอบ

> db.demo372.insertOne({"FirstName":"Chris"});
> db.demo372.insertOne({"FirstName":null});
> db.demo372.insertOne({"FirstName":"David"});
> db.demo372.insertOne({"FirstName":null});

แสดงข้อมูลทั้งหมด

> db.demo372.find();
{
    "_id" : ObjectId("5e591aea2ae06a1609a00af6"), "FirstName" : "Chris"
}
{
    "_id" : ObjectId("5e591aef2ae06a1609a00af7"), "FirstName" : null
}
{
    "_id" : ObjectId("5e591af42ae06a1609a00af8"), "FirstName" : "David"
}
{
    "_id" : ObjectId("5e591afb2ae06a1609a00af9"), "FirstName" : null
}

คำสั่ง Aggregation ใช้ $ifNull

> db.demo372.aggregate([
    {
        $project: {
            FirstName: { $ifNull: [ "$FirstName", "NOT PROVIDED" ] }
        }
    }
])

ผลลัพธ์

{
    "_id" : ObjectId("5e591aea2ae06a1609a00af6"), "FirstName" : "Chris"
}
{
    "_id" : ObjectId("5e591aef2ae06a1609a00af7"), "FirstName" : "NOT PROVIDED"
}
{
    "_id" : ObjectId("5e591af42ae06a1609a00af8"), "FirstName" : "David"
}
{
    "_id" : ObjectId("5e591afb2ae06a1609a00af9"), "FirstName" : "NOT PROVIDED"
}

รูปแบบ: {$ifNull: [<expression>, <replacement-if-null>]} ใช้ได้ใน $project, $addFields, $set ฯลฯ