MongoDB的比较操作符$in

本文介绍了MongoDB的$in操作符,包括如何在单值域和数组域中使用$in进行匹配,以及$in与正则表达式的结合应用。通过示例展示了如何查询和更新那些值匹配指定数组中任意值的文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$in操作符用于选择某个域的值等于其后指定的数组中的任意值的文档。

{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }

域本身可以是数组,此时$in将会选择域数组中有至少任意一值等于其后指定的数组中的任意一个值的文档。

单值域的$in匹配

db.inventory.find( { qty: { $in: [ 5, 15 ] } } )

选择所有inventory集合中qty域的值为5或者15的文档。该查询可以用$or表达,但是$in应该优先被使用。

数组域的$in匹配值

inventory拥有如下结构,tags域为数组

{ _id: 1, item: "abc", qty: 10, tags: [ "school", "clothing" ], sale: false }
db.inventory.update(
                     { tags: { $in: ["appliances", "school"] } },
                     { $set: { sale: true } }
                   )

以上操作执行后,tags数组中包含任意一个值为“appliances”, “school”的文档的sale将会被更新为true

$in与正则表达式

$in支持/pattern/模式的正则匹配,$in内不支持使用$regex

db.inventory.find( { tags: { $in: [ /^be/, /^st/ ] } } )

以上查询将查找到tags数组中包含任意一个值以"be"或"st"开头的所有文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值