2014-09-13 32 views
0

在MongoDB中,我想根據某個字段是否具有特定子字符串來對文檔進行分組。我試圖將每個文檔投影到一個布爾值,說明該字段是否具有該子字符串/匹配該模式,然後按該字段進行分組。在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

你在問關於MongoDB [Aggregation Pipeline](http://docs.mongodb.org/manual/core/aggregation-pipeline/)嗎? – 2014-09-13 16:24:01

+0

你可以聚合你的收藏文件,並找出哪些與我編輯過的問題匹配給定的''regex'' – GuillaumeA 2014-09-14 13:58:37

+0

。 – 2014-09-14 17:10:07

回答

1

$regex運營商是否需要後場出現,你是匹配的:

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

「未知名頂級運營商」消息意味着操作員後場出現其適用。

+0

我不想只選擇匹配正則表達式的對象。 我想投影同一組對象,並生成一個字段,指出是否匹配正則表達式。 – 2014-09-17 02:46:07

相關問題