MongoDB $and 运算符

MongoDB $and 运算符 介绍

MongoDB 提供了多种逻辑查询运算符。$and 运算符就是这些运算符之一。$and 运算符用于对一个或多个表达式的数组执行逻辑与运算。用户可以根据需要在 find()、update() 等方法中使用此运算符。

用户还可以在逗号 (,) 的帮助下使用“AND 运算”。$and 运算符使用短路评估。当用户在多个表达式中指定相同的字段或运算符时,用户可以使用“$AND 运算”。

例如,假设有两个表达式(e1 和 e2)。如果第一个表达式 (e1) 被评估为假,那么第二个表达式 (e2) 将不会被评估。

MongoDB $and 运算符 语法

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

MongoDB $and 运算符 例子

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

Database: Yiidian
Collection: Student  
Document: Six documents that contain the details of the students  
[  
        {  
                "std_name" : "Jack",  
                "sex" : "Male",  
                "class" : "VI",  
                "age" : 11,  
                "grd_point" : 33  
        },  
        {  
                "std_name" : "Jenny",  
                "sex" : "Female",  
                "class" : "VI",  
                "age" : 13,  
                "grd_point" : 30  
        },  
        {  
                "std_name" : "Thomas",  
                "sex" : "Male",  
                "class" : "V",  
                "age" : 11,  
                "grd_point" : 35.1257  
        },  
        {  
                "std_name" : "Lassy",  
                "sex" : "Female",  
                "class" : "X",  
                "age" : 17,  
                "grd_point" : 36.2514  
        },  
        {  
                "std_name" : "Mia",  
                "sex" : "Female",  
                "class" : "X",  
                "age" : 19,  
                "grd_point" : 35.5201  
        }  
       {  
                "std_name" : "Mike,  
                "sex" : "Male",  
                "class" : "V",  
                "age" : 16,  
                "grd_point" : 35.5201  
        }  
]  

使用 $and 运算符匹配两个条件值:

在此示例中,我们仅从满足以下条件的学生那里获取文档:

  1. 学生的“class”是VI。
  2. 学生的“sex”是女性。

类似于SQL以下语句:

SELECT *   
FROM student   
WHERE sex = "Female" AND class = "VI";  

 输出结果为:

使用 $and 运算符匹配多个条件值:

在此示例中,我们仅从满足以下条件的学生那里获取文档:

  1. 学生的“age”为 17 岁。
  2. 学生的“sex”是女性。
  3. 学生的“class”是 X。
>db.student.find({$and: [{"sex" : "Female"}, {"grd_point" : { $gte: 31 }}, {"class" : "X"}]}).pretty();  

 效果类似于下面的SQL语句:
 

SELECT *   
FROM student   
WHERE sex = "Female" AND grd_point >= 31 AND class = "X";  

输出结果为:

热门文章

优秀文章