mongodb中是否有一种方法可以$ project给定字段的所有正则表达式匹配项的数组?

时间:2019-06-12 11:21:25

标签: mongodb

我正在尝试在mongodb聚合查询中找到名为title的字段的正则表达式的所有匹配项。我想通过$ project在计划字段中获得所有匹配项。

我已经研究过$ text运算符用于文本搜索,但这不是我想要的。

个项目集合中的文档样本:

{
    "_id": ObjectId("5ceb898f12a765d79aead953"),
    "title": "This is the text of the title field"
},
{
    "_id": ObjectId("5ce7dc269e03d7714c84aa43"),
    "title": "Yet another sample for title field"
}

然后我运行以下查询:

db.getCollection('items').aggregate([
  {
    $match: {
      title: /t./g
    }
  }
]);

上面的查询匹配两个文档,这是预期的行为。

但是,我想要以下输出:

{
  "_id": ObjectId("5ceb898f12a765d79aead953"),
  "title": "This is the text of the title field",
  "generatedField": ["th", "te", "t ", "th", "ti", "tl"]
},
{
  "_id": ObjectId("5ce7dc269e03d7714c84aa43"),
  "title": "Yet another sample for title field",
  "generatedField": ["t ", "th", "ti", "tl"]
}

我假设查询将如下所示。括号中的代码就是我想要的:

db.getCollection('items').aggregate([
  {
    $match: {
      title: /t./g
    }
  },
  {
    $project: {
      title: 1,
      generatedField: (code to generate javascript equivalent of $title.match(/t./g))
    }
  }
]);

任何帮助将不胜感激。

0 个答案:

没有答案