Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn MongoDB chọn trường này nếu trường kia null

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" }