我有这样的数据:
"name": "colla", 'status': '+'
由此我想找到所有带有list(db.some_db.find({}, {"name": "cola","status":'+'})).sort(key=itemgetter('weight'), reverse=True)
的非重复元素并等同于随机变量。
示例:从上面的数据获取所有"权重" (2,3)和等同。 (some_random1 = 2,some_random2 = 3)
我是如何尝试的:KeyError: 'weight'
,但我收到此错误:
{{1}}
感谢您的帮助
答案 0 :(得分:0)
您的查询中存在拼写错误。
documents = db.some_db.find({'name': 'colla', 'status': '+'})
documents.sort(key=lambda doc: doc.get('weight', None), reverse=True)
使用itemgetter
,您必须确实确定所有文档都有权重字段。在这里使用lambda是一种按重量分类的非严格方法。
查询结果可以限制为查找具有权重字段的文档。
documents = db.some_db.find({
'name': 'colla', 'status': '+', 'weight': {'$exists': True},
})
最后,查询结果可以限制为查找权重为2或3的文档。
documents = db.some_db.find({
'name': 'colla', 'status': '+', 'weight': {'$in': [2, 3]},
})