0

我正在尝试使用 pymongo 和 mongo 的聚合框架,这是我从 Python 中得到的:

OperationFailure: command SON([('aggregate', 'call_log'), ('pipeline', [{'$match': {u'user': 1}}, {'$project': {'date': 1, 'status': 1, 'number': 1, 'description': 1}}, {'$group': {u'first_number': {u'$first': u'$number'}, '_id': SON([(u'number', u'$number')]), u'avg_number': {u'$avg': u'$number'}}}])]) failed: exception: can't convert from BSON type 2 to double

Python的代码剪切:

    #Process grouping
    groups_list = []
    if "fields" in group_json:
        for  k, v in group_json["fields"].items():
            groups_list.append((k,'$' + k))
        if len(groups_list) > 0:
            obj_group_json.update({'_id': SON(groups_list)})
            if "aggregate" in group_json:
                for field in group_json["aggregate"]:
                    if field['func'] == "count":
                        obj_group_json.update({"count_" + field['name']: {'$sum': 1}})
                    else:
                        obj_group_json.update({field['func'] + "_" + field['name']:
                                                       {'$' + field['func']: '$' + field['name']}})

你有什么想法为什么?

4

1 回答 1

1

BSON 类型 2是一个字符串,因此将其转换为整数似乎会引发错误。

你能输出:obj_group_json 吗?另外,检查您的数据 - 您是否有任何不是数字的数字数据?

于 2012-05-31T15:17:47.277 回答