當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


MongoDB $or用法及代碼示例

MongoDB 提供了多種邏輯查詢操作符。 $or 運算符是這些運算符之一。 $or 運算符對一個或多個表達式的數組執行邏輯 "OR operations"。此運算符僅用於檢索與數組中至少一個給定表達式匹配的文檔。

$OR 運算符用於在單個查詢中查找多個表達式,該查詢隻需要文檔中的一個匹配條件。多個鍵和值可以與 $or 運算符一起使用。

  1. 用戶可以根據需要在 find()、update() 等方法中使用該運算符。
  2. 您還可以將此運算符用於 GeoSpatial 查詢、排序操作和文本查詢。

用法:

{ $or:[ { Expression 1 }, { Expression 2 }, ..., { Expression N } ] }

例子:

在以下示例中,我們正在使用:

Database:JavaTpoint
Collection:student
Document:Five documents that contain the details of the students
>db.student.find()
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d65f"),
           "name":"Mick",
           "Course":"btech",
           "batch_year":2018,
           "language":["c++", "java", "python"],
           "personal_details":
                     {
                      "Father_name":"Jonny",
                      "phone_no":8895321456,
                      "age":23,
                      "gender":"Male",
                      "City":"NewYork",
                     }            
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d691"),
           "name":"Zoya",
           "Course":"BCA",
           "batch_year":2020,
           "language":["C#", "JavaScript"],
           "personal_details":
                     {
                      "Father_name":"Henry",
                      "phone_no":9874563698,
                      "age":20,
                      "gender":"Female",
                      "City":"London",
                     }
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d655"),
           "name":"Jonny",
           "Course":"MCA",
           "batch_year":2019,
           "language":["C#", "java", "PHP"],
           "personal_details":
                     {
                      "Father_name":"Thomas",
                      "phone_no":7845123698,
                      "age":24,
                      "gender":"Male",
                      "City":"London",
                     }          
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d678"),
           "name":"Oliver",
           "Course":"BA",
           "batch_year":2017,
           "language":["c", "PHP"],
           "personal_details":
                     {
                      "Father_name":"William",
                      "phone_no":9997845123,
                      "age":25,
                      "gender":"Male",
                      "City":"Liverpool",
                     }           
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d665"),
           "name":"Mia",
           "Course":"btech",
           "batch_year":2020,
           "language":["HTML", "CSS", "PHP"],
           "personal_details":
                     {
                      "Father_name":"Leo",
                      "phone_no":6312547896,
                      "age":22,
                      "gender":"Female",
                      "City":"Manchester",
                     }           
}

示例 1:MongoDB 邏輯 $or 運算符:

在此示例中,我們僅檢索 Course 為 "MCA" 或 batch_year 為 2018 年的學生的數據。

>db.student.find({$or:[{Course:"MCA"}, {batch_year:2018}]}).pretty()

輸出:

>db.sutdent.find({$or:[{Course:"MCA"}, {batch_year:2018}]}).pretty()
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d65f"),
           "name":"Mick",
           "Coruse":"btech",
           "batch_year":2018,
           "language":["c++", "java", "python"],
           "personal_details":
                     {
                      "Father_name":"Jonny",
                      "phone_no":8895321456,
                      "age":23,
                      "gender":"Male",
                      "City":"NewYork",
                     }            
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d655"),
           "name":"Jonny",
           "Coruse":"MCA",
           "batch_year":2019,
           "language":["C#", "java", "PHP"],
           "personal_details":
                     {
                      "Father_name":"Thomas",
                      "phone_no":7845123698,
                      "age":24,
                      "gender":"Male",
                      "City":"London",
                     }          
}

示例 2:MongoDB 邏輯 $or 運算符(檢索嵌入文檔中的數據):

在此示例中,我們僅檢索 City 為 "London" 或年齡為 20 的那些學生的文檔。

>db.student.find({$or:[{"personal.age":20}, {"personal.City":"London"}]}).pretty()

輸出:

>db.student.find({$or:[{"personal.age":20}, {"personal.City":"London"}]}).pretty()
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d691"),
           "name":"Zoya",
           "Course":"BCA",
           "batch_year":2020,
           "language":["C#", "JavaScript"],
           "personal_details":
                     {
                      "Father_name":"Henry",
                      "phone_no":9874563698,
                      "age":20,
                      "gender":"Female",
                      "City":"London",
                     }
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d655"),
           "name":"Jonny",
           "Course":"MCA",
           "batch_year":2019,
           "language":["C#", "java", "PHP"],
           "personal_details":
                     {
                      "Father_name":"Thomas",
                      "phone_no":7845123698,
                      "age":24,
                      "gender":"Male",
                      "City":"London",
                     }          
}

示例 3:使用 $or 運算符匹配數組中的值:

在此示例中,我們僅檢索與給定數組中至少匹配一個值的那些學生的文檔。

>db.student.find({$or:[{language:{$in:["c++", "java", "python"]}}]}).pretty()

輸出:

>db.student.find({$or:[{language:{$in:["c++", "java", "HTML"]}}]}).pretty()
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d65f"),
           "name":"Mick",
           "Course":"btech",
           "batch_year":2018,
           "language":["c++", "java", "python"],
           "personal_details":
                     {
                      "Father_name":"Jonny",
                      "phone_no":8895321456,
                      "age":23,
                      "gender":"Male",
                      "City":"NewYork",
                     }            
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d655"),
           "name":"Jonny",
           "Course":"MCA",
           "batch_year":2019,
           "language":["C#", "java", "PHP"],
           "personal_details":
                     {
                      "Father_name":"Thomas",
                      "phone_no":7845123698,
                      "age":24,
                      "gender":"Male",
                      "City":"London",
                     }          
}
{
           "_id":ObjectId("56254d4fdf2222265r4g12ds3d665"),
           "name":"Mia",
           "Course":"btech",
           "batch_year":2020,
           "language":["HTML", "CSS", "PHP"],
           "personal_details":
                     {
                      "Father_name":"Leo",
                      "phone_no":6312547896,
                      "age":22,
                      "gender":"Female",
                      "City":"Manchester",
                     }           
}




相關用法


注:本文由純淨天空篩選整理自 MongoDB $or Operator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。