mongodb:查询以检查数组中的项目是不是包含特定字符串[重复]

Posted

技术标签:

【中文标题】mongodb:查询以检查数组中的项目是不是包含特定字符串[重复]【英文标题】:mongodb: query to check if item in an array contains a particular string [duplicate]mongodb:查询以检查数组中的项目是否包含特定字符串[重复] 【发布时间】:2018-11-03 20:17:36 【问题描述】:

我有一个名为 products 的集合,其中包含以下项目

[
   
    name: 'Product 1'
    images: ['http://staging.example.com/1', 'http://production.example.com/2'],
    ... 
  ,
   
    name: 'Product 2'
    images: ['http://production.example.com/3'],
    ... 
  
]

我想在images 数组中查找包含字符串staging 的文档。

我尝试了一些方法,例如使用 $contains,但 mongo 抛出错误说我不能将 $contains 与数组一起使用。

【问题讨论】:

【参考方案1】:

我认为您可能需要在这里进行正则表达式搜索。

试试:

db.collection.find(images: /staging/);

【讨论】:

啊!可能已经猜到了:) 谢谢! 不客气~ 您是否也知道如何使用更新将staging 更新为productiondb.collection.update(images: /staging/, $set: 'images.$[]': ? ) staging 是您的字符串值的一部分。我认为更新部分字符串不在 mongo 之手【参考方案2】:
db.products.find(images: /staging/i);

我认为这会有所帮助

【讨论】:

以上是关于mongodb:查询以检查数组中的项目是不是包含特定字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检查数组字段是不是包含唯一值或 MongoDB 中的另一个数组?

如何首先检查 mongodb 中的数组,如果它还没有包含这个项目(字符串),然后添加项目?

检查数组是不是包含元素 mongodb

Mongodb查询字符串数组看是不是包含关键字

检查字符串(句子空格分隔)以查看它是不是包含数组中的任何字符

Mongodb:如何检查一个点是不是包含在多边形中?