【发布时间】:2021-05-18 03:51:35
【问题描述】:
我有一个包含以下文档的集合:
{'state': 'NY', 'DOB': '2000-01-02'},
{'state': 'NY', 'DOB': '2002/03/04'},
{'state': 'NY', 'DOB': '00-00-00'},
{'state': 'NY', 'DOB': 'male'},
...
我想要这样的输出:
{'state': 'NY', 'DOB': '2000-01-02', 'Age': 21},
{'state': 'NY', 'DOB': '2002/03/04', 'Age': 19},
{'state': 'NY', 'DOB': '00-00-00', 'Age': None}, # or Mongo None equivalent
{'state': 'NY', 'DOB': 'male', 'Age': None}, # or Mongo None equivalent
...
我正在 PyMongo 中构建聚合查询,我想知道是否有一种聚合方式可以尝试将字段转换为 Mongo Date 对象,然后从中提取Age,否则(如果无法提取日期) ,返回无。下面的shell中的一些条件?
def map_age(state, city)
db.aggregate([
{'$match': {
'state': state,
'DOB': {"$exists": True},
'Age': {"$exists": False}
}},
{...}
])
【问题讨论】:
-
为什么不在你的代码中做呢?
-
您可以使用$dateFromString聚合运算符。
标签: python mongodb aggregation-framework pymongo