MongoDB $nin 运算符

2024年9月6日 | 2 分钟阅读

MongoDB 中的 $nin 操作符是什么?

MongoDB 提供了各种比较查询操作符。 $nin(不在)操作符是其中之一。 $nin 操作符用于选择字段值不等于数组中任何给定值的文档。

$nin 操作符的语法

示例

假设我们有一个包含以下文档的产品集合。

示例 1:使用 $nin 操作符

在此示例中,我们仅检索 _id 值不等于特定值(4、5 和 6)的那些产品文档。

输出

{ 
   "_id" : 1, 
   "product_name" : "Shirt", 
   "sizes" : [ "S", "M", "XL", "XXL" ] 
}
{  
   "_id" : 2, 
   "product_name" : "T-Shirt", 
   "sizes" : [ "S", "L", "XL" ] 
}
{ 
   "_id" : 3, 
   "product_name" : "Shorts", 
   "sizes" : [ "XS", "S", "M", "L", "XL" ] 
}

示例 2:另一个字段

在此示例中,我们将对不同的字段使用 $nin 操作符。

输出

{  
   "_id" : 2, 
   "product_name" : "T-Shirt", 
   "sizes" : [ "S", "L", "XL" ] 
}
{ 
   "_id" : 3, 
   "product_name" : "Shorts", 
   "sizes" : [ "XS", "S", "M", "L", "XL" ] 
}
{ 
   "_id" : 4, 
   "product_name" : "Jeans", 
   "sizes" : "L" 
}
{ 
   "_id" : 5, 
   "product_name" : "CottonShirts", 
   "sizes" : null 
}
{ 
   "_id" : 6, 
   "product_name" : "CottonShorts" 
}

示例 3:将 $nin 操作符与正则表达式一起使用

输出

{ 
   "_id" : 4, 
   "product_name" : "Jeans", 
   "sizes" : "L" 
}
{ 
   "_id" : 5, 
   "product_name" : "CottonShirts", 
   "sizes" : null 
}
{ 
   "_id" : 6, 
   "product_name" : "CottonShorts" 
}

示例 4:使用 $nin 操作符更新数据

在此示例中,我们使用 update() 方法与 $nin 和 $set 操作符,以更新产品名称不是 Shirt、T-Shirt、Shorts、Jeans 或 CottonShorts 的文档中的 "sizes" 字段。

输出

{ 
   "_id" : 5, 
   "product_name" : "CottonShirts", 
   "sizes" : 40 
}