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} --> python 正则表达式,匹配两位数。

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

我正在使用 pymongo。我该如何解决这个问题。

4

1 回答 1

1

您目前不能使用正则表达式或其他运算符在投影中使用动态字段名称。

我不确定是否有能力,我无法在 JIRA 上找到任何有意义的东西。

目前最好的方法是针对您的查询进行重组。

于 2013-07-17T12:49:10.410 回答