2013-07-17 30 views
1

我的MongoDB的文件看起來是這樣的,

{'finance_pl': 
    {'S': 
     { 
     '** 200903': {'reported_eps': '19.48'}, 
     '200806': {'reported_eps': '18.8'} 
     } 
    } 
} 

** 200903 ==>年2009個月03

獲取reported_eps簡單的方法就是這個

db.collection.find(
    {}, 
    {'finance_pl.S.200803.reported_eps':1} 
) 

但問題是我只有一年2008或2009年月份部分需要動態地生成。

我需要像這樣

db.collection.find(
    {}, 
    {'finance_pl.S.2008[0-9]{2}.reported_eps':1} 
) 

[0-9] {2} - >蟒正則表達式,以匹配兩位數。

我在文檔和其他地方找到的所有示例都沒有在投影部分使用$ regex。

我正在使用pymongo。我應該如何解決這個問題。

回答

1

您目前無法在使用正則表達式或其他運算符的投影中使用動態字段名稱。

我不確定是否會有能力,我無法在JIRA上找到任何有意義的東西。

目前最好的方法是爲您的查詢進行重組。

+0

謝謝@Sammaye。但我們可以使用JavaScript來做到這一點。 –

+1

@JohnPrawyn最好的wya是在你拉回來後過濾掉文檔 – Sammaye