在MongoDB中,我可以预测值是否具有新字段的子字符串吗?

时间:2014-09-13 15:56:35

标签: mongodb pymongo

在MongoDB中,我想根据某个字段是否具有某个子字符串来对文档进行分组。我试图将每个文档投影到一个布尔值,该布尔值表示该字段是否具有该子字符串/匹配该模式,然后按该字段分组。

我该怎么做?

编辑:

1)我已经尝试将聚合管道作为

db.aggregate([
   { 
      '$match': { 
          '$regex': '.*world'
      }
   }
])

但是我收到了一个错误:

pymongo.errors.OperationFailure: command SON([('aggregate', u'test'), ('pipeline', [{'$match': {'$regex': '.*world'}}])]) failed: exception: bad query: BadValue unknown top level operator: $regex

2)我不是只想选择与模式匹配的单词。我想选择每个文件。我想创建一个名为“匹配”的字段。它表示模式是否与每个元素匹配。

1 个答案:

答案 0 :(得分:1)

$regex运算符需要出现在您匹配的字段之后:

db.aggregate([
  {
    "$match": { 
      "fieldName": {"$regex": ".*world"}
    }
  }
])

"未知的顶级操作员" message表示操作员必须在之后显示它所适用的字段。