在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)我不是只想选择与模式匹配的单词。我想选择每个文件。我想创建一个名为“匹配”的字段。它表示模式是否与每个元素匹配。
答案 0 :(得分:1)
$regex运算符需要出现在您匹配的字段之后:
db.aggregate([
{
"$match": {
"fieldName": {"$regex": ".*world"}
}
}
])
"未知的顶级操作员" message表示操作员必须在之后显示它所适用的字段。