当前位置: 首页 > 面试题库 >

如何在$ match中的mongodb聚合查询中使用$ regex

郎弘业
2023-03-14
问题内容

我正在尝试使用$regex内部$match,而不返回匹配的文件。

db.collection('MyCollection', function (err, collection) {
  collection.aggregate([
    { $match: { 'Code': 'Value_01', 'Field2': { $regex: '/Value_2/g' } } },  
    { $project: {
        _id: 1,
        CodeNumber: '$Code',
        FieldName2: '$Field2'
      }
    }
  ], function (err, Result_doc) {
    console.log(Result_doc);
  }
});

谁能告诉我哪里出了问题或正确的语法?

我什至尝试更换

'Field2': { $regex: /Value_2/g }

问题答案:

就像$regex您链接到的文档中所说的那样,执行此操作的两种方法是:

Field2: /Value_2/g

要么

Field2: { $regex: 'Value_2', $options: 'g' }

但是我也尝试了您的第二次尝试,'Field2': { $regex: /Value_2/g }并且效果很好。

顺便说一句,g在这种情况下,正则表达式选项没有意义,因为无论如何您只需要一个匹配项。请注意,它甚至没有在$regex文档中列出。



 类似资料:
  • 我使用Nodejs和MongoDB与expressjs和mongoose库,创建一个具有用户、文章和评论模式的博客API。下面是我使用的模式。

  • 我是Spring Data MongoDB的新手,我正在尝试用Spring Data MongoDBJava实现聚合查询。我尝试过从这个问题中搜索,并使用进行搜索,但仍然没有结果。 我的数据格式: 我的查询: 这是我在Javascript后端使用的查询,我可以用Mongoose很容易地做到这一点。然而,我对它的Java实现有一些困难。 当我尝试运行此程序时,会出现以下错误: 当我删除从组聚合中,我

  • 主要内容:aggregate() 方法,管道MongoDB 中的聚合操作用来处理数据并返回计算结果,聚合操作可以将多个文档中的值组合在一起,并可对数据执行各种操作,以返回单个结果,有点类似于 SQL 语句中的 count(*)、group by 等。 aggregate() 方法 您可以使用 MongoDB 中的 aggregate() 方法来执行聚合操作,其语法格式如下: db.collection_name.aggregate(aggr

  • 在setQuery()中,我必须使用聚合查询而不是基本查询。这可能吗?请建议我怎么做?我的聚合查询已经就绪,但不确定如何在spring批处理中使用它

  • 我有一套文件。每个文档有两个字段—“代码”和“状态”。我的mongodb集合包含以下文档: 我想按每个代码的状态查找计数。我想要的输出如下所示: 如何使用spring data mongodb实现这一点?我对mongodb很陌生。 更新我已成功编写mongodb查询。这是: 有人能帮助您在spring data mongodb中编写此查询吗?

  • 我正在使用mongodb中的聚合查询来查找集合中存在的所有文档中的属性之和。 查询: Mongodb返回的结果很好,并且是这种格式。 我很困惑如何存储Mongodb返回的结果对象并从中提取特定字段。 请帮忙。