我想知道我是否可以只从列表中返回的查询结果中显示值。
我正在运行以下内容:
a = ast.literal_eval(json.dumps(list(db.bastion.find( { },{ 'counter': 1, '_id': False } ))))
返回与此类似的内容:
[{'counter': 10447}, {'counter': 25375}, {'counter': 11963}, {'counter': 17297},
{'counter': 5893}, {'counter': 19955}, {'counter': 5159}, {'counter': 3988},
{'counter': 7638}, {'counter': 8250}, {'counter': 29514}, {'counter': 4940},
{'counter': 12834}, {'counter': 31153}, {'counter': 8588}, {'counter': 17585},
{'counter': 7099}, {'counter': 18580}, {'counter': 2575}, {'counter': 3696},
{'counter': 5071}, {'counter': 4074}, {'counter': 15355}, {'counter': 16520},
{'counter': 13850}, {'counter': 18639}, {'counter': 22640}, {'counter': 13962},
{'counter': 14354}, {'counter': 10945}, {'counter': 10330}]
所以我想要的只是值而不是显示的关键名称计数器,所以我可以计算出第95个百分点,执行以下操作:
for i in a:
print np.percentile(map(int,i),95)
答案 0 :(得分:0)
如果我理解你,你想要摆脱标记 所以试试这个:
var ch = db.bastion.find( { },{ 'counter': 1, '_id': False }; ch.forEach( function(doc) {print(doc.counter);});
这将为您提供明确的价值
答案 1 :(得分:0)
有一个将百分位运算符添加到MongoDB聚合框架的票证。
https://jira.mongodb.org/browse/SERVER-7463
发布后,您将能够完全在服务器端完成。
现在,就像hgoebl建议的那样,你必须在客户端做这件事,或者使用map-reduce。
a = db.bastion.find( { }, { 'counter': 1, '_id': False } ))))
np.percentile([x['score'] for x in a], 95)