我试图使用$match中的$regex,但它不返回匹配的文档.

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);
  }
});

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


I even tried with replacing the
'Field2': { $regex: /Value_2/g }

推荐答案

正如你链接到的$regex个文档中所说,有两种方法可以做到这一点:

Field2: /Value_2/g

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

但我也试过你第二次try 'Field2': { $regex: /Value_2/g }次,效果也不错.

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

Mongodb相关问答推荐

如何在Mongo中制作全覆盖索引

MongoDB对两个串联数组进行排序

Select 筛选聚合中的嵌套字段

所有文档中嵌套 struct 中的条件匹配-mongodb

当日期和时间在不同键的字符串中时,Mongo 查询过滤今天的数据

我无法在react 中使用 fetch 和express 从数据库中删除数据

如何获取mongodb ObjectId的值?

Mongodb,在一个查询中用正则表达式更新部分字符串

Mongoose - $project 嵌套的对象数组到数组的根级别

mongoDB 过滤、排序和排名结果

在mongoose 中按键查找嵌套对象

如何在mongoDB中按嵌套文档分组( group by )

Mongodb 仅在值唯一时插入,否则更新 - 在 node.js 中

无法使用机器 ip 连接到 mongodb

Select 匹配mongodb中两个字段的concat值的记录

MongoDB聚合排序不起作用

Mongoose 是否真的验证了对象 ID 的存在?

如何使用node.js http服务器从mongodb返回大量行?

Mongoose / MongoDB 用户通知方案建议

如何从mongoose中的对象 ID 获取创建日期?