我目前正在使用pyMongo运行mongoDB查询,在这里我想以“ TR Trace”的名称返回存储在数据库中每个对象中的数组的内容。但是,JSON对象中的数据存储为字符串,在插入列表之前,我需要将其转换为双精度型,这很麻烦。这是我的查询:
pipeline = [{'$match':{"Timestamp":{'$gte':m(), '$lt':current()},
'Frequency Survey Reference':{'$regex':'Ch2'}}},
{'$group': {
'_id': '$Timestamp',
'Trace' : {'$push': '$TR Trace'}
}},
{'$sort': {'_id': -1}},
#{'$limit': 1}
]
get_tr = collection.aggregate(pipeline, allowDiskUse=True)
tr = list(get_tr)
我尝试了此操作,进行了转换,并得到了相应的错误:
get_tr = get_tr.astype(np.float)
AttributeError: 'CommandCursor' object has no attribute 'astype'
从那时起,我就迷路了。我在正确的时间执行转换吗?
答案 0 :(得分:0)
使用$toDouble
聚合管道运算符。更改
'Trace' : {'$push': '$TR Trace'}
到
'Trace' : {'$push': {'$toDouble': '$TR Trace'}}
get_tr = get_tr.astype(np.float)
也不起作用,因为aggregate()
返回用于迭代的游标。