📜  MongoDB - 逻辑查询运算符(1)

📅  最后修改于: 2023-12-03 15:17:41.482000             🧑  作者: Mango

MongoDB - 逻辑查询运算符

MongoDB 是一种文档导向的数据库管理系统,它采用了类似于JSON的文件格式存储数据。在 MongoDB 中,逻辑查询运算符用于对文档进行检索和筛选,以实现高效的数据查询操作。

基本语法

在 MongoDB 的查询操作中,逻辑查询运算符通常用 { $operator: [expr1, expr2, ..., exprN] } 的形式表示,其中 $operator 表示逻辑查询运算符,[expr1, expr2, ..., exprN] 是待比较的值列表。

以下是一些常见的逻辑查询运算符及其用法。

$and

用于多条件的与运算,筛选出满足所有条件的文档。

{ $and: [ {key1: value1}, {key2: value2}, ... {keyN: valueN} ] }

示例:

db.collection.find( { $and: [ { category: "food" }, { amount: { $lt: 20 } } ] } )

以上代码将返回所有 category 为 "food" 且 amount 值小于 20 的文档。

$or

用于多条件的或运算,筛选出满足任意条件的文档。

{ $or: [ {key1: value1}, {key2: value2}, ... {keyN: valueN} ] }

示例:

db.collection.find( { $or: [ { category: "food" }, { category: "drinks" } ] } )

以上代码将返回所有 category 为 "food" 或 "drinks" 的文档。

$not

用于取反指定条件的查询结果。

{ field: { $not: { operator: value } } }

示例:

db.collection.find( { amount: { $not: { $gt: 50 } } } )

以上代码将返回所有 amount 值不大于 50 的文档。

$nor

用于多条件的并非运算,筛选出不满足任何条件的文档。

{ $nor: [ {key1: value1}, {key2: value2}, ... {keyN: valueN} ] }

示例:

db.collection.find( { $nor: [ { category: "food" }, { category: "drinks" } ] } )

以上代码将返回所有 category 不为 "food" 或 "drinks" 的文档。

组合使用

逻辑查询运算符可以灵活组合使用,以实现更复杂的数据查询操作。

示例:

db.collection.find( 
   { 
      $and: [ 
         { $or: [ { category: "food" }, { category: "drinks" } ] },
         { amount: { $not: { $gt: 50 } } }
      ] 
   } 
)

以上代码将返回所有 category 为 "food" 或 "drinks" 且 amount 值不大于 50 的文档。

总结

逻辑查询运算符是 MongoDB 查询操作中的重要部分,能够帮助程序员有效地检索和筛选文档。通过熟练掌握逻辑查询运算符的用法,可以更高效地处理 MongoDB 中的数据。