Computer >> Máy Tính >  >> Lập trình >> MongoDB

Truy vấn MongoDB để chọn một trường nếu trường kia là null và trường đầu tiên nếu cả hai đều không rỗng?

Đối với điều này, hãy sử dụng toán tử $ ifNull

Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> dbquerySelectDemoinsertOne({"Value1":10,"Value2":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefc0ceef71edecf6a1f6b6")
}
> dbquerySelectDemoinsertOne({"Value1":null,"Value2":30});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefc0d7ef71edecf6a1f6b7")
}
> dbquerySelectDemoinsertOne({"Value1":60,"Value2":40});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefc0e2ef71edecf6a1f6b8")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> dbquerySelectDemofind()pretty();

Đầu ra

{
   "_id" : ObjectId("5cefc0ceef71edecf6a1f6b6"),
   "Value1" : 10,
   "Value2" : null
}
{
   "_id" : ObjectId("5cefc0d7ef71edecf6a1f6b7"),
   "Value1" : null,
   "Value2" : 30
}
{
   "_id" : ObjectId("5cefc0e2ef71edecf6a1f6b8"),
   "Value1" : 60,
   "Value2" : 40
}

Sau đây là truy vấn để chọn một trường nếu trường kia là null -

> dbquerySelectDemoaggregate([
   {
      $project: {
         "Value1": { "$ifNull": [ "$Value1", "$Value2" ] }
      }
   }
]);

Đầu ra

{ "_id" : ObjectId("5cefc0ceef71edecf6a1f6b6"), "Value1" : 10 }
{ "_id" : ObjectId("5cefc0d7ef71edecf6a1f6b7"), "Value1" : 30 }
{ "_id" : ObjectId("5cefc0e2ef71edecf6a1f6b8"), "Value1" : 60 }