使用 pymongos Map Reduce 映射到嵌套的 JSOn

Posted

技术标签:

【中文标题】使用 pymongos Map Reduce 映射到嵌套的 JSOn【英文标题】:Mapping to nested JSOn using pymongos Map Reduce 【发布时间】:2015-02-03 19:22:29 【问题描述】:

大家好,我收到以下代码错误:

collection = db.classifications

results = collection.find("place":"$ne":None, "place.country_code":1)
for doc in results:
    print doc

map = Code("function()emit(this.place.country_code, 1);")

reduce = Code("function(key,values)return Array.sum(values)")

result = collection.map_reduce(map, reduce, "results")

for doc in result.find():
    print doc

错误说它无法读取第 7 行的属性“country_code”。

任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

我自己想出来的,所以我会为好奇的人发布答案......

我无法映射到 place.country_code,因为在某些情况下该属性不存在,例如place = Null。

所以我改为添加一个查询以仅选择位置不为空的推文:

result = collection.map_reduce(map, reduce, "results",query="place":"$ne":None)

【讨论】:

为什么你需要 mapReduce ——你可以通过简单的聚合来做到这一点

以上是关于使用 pymongos Map Reduce 映射到嵌套的 JSOn的主要内容,如果未能解决你的问题,请参考以下文章

Python入门之经典函数实例——第3关:Map-Reduce - 映射与归约的思想

Python入门之经典函数实例——第3关:Map-Reduce - 映射与归约的思想

map、foreach、reduce、filters的用法及区别

Map Reduce和流处理

将日期对象放入 MongoDB,使用 pymongo 查询时返回浮点数

javascript Array .filter / .map / .reduce ... etc - 在集合上映射然后减少它