【发布时间】:2013-01-16 23:47:10
【问题描述】:
我正在使用 $in 运算符运行 mongodb find 查询:
collection.find({name: {$in: [name1, name2, ...]}})
我希望按照与我的名称数组相同的顺序对结果进行排序:[name1, name2, ...]。我如何做到这一点?
注意:我是通过 pymongo 访问 MongoDb,但我认为这并不重要。
编辑:由于在 MongoDb 中无法实现这一点,我最终使用了典型的 Python 解决方案:
names = [name1, name2, ...]
results = list(collection.find({"name": {"$in": names}}))
results.sort(key=lambda x: names.index(x["name"]))
【问题讨论】:
-
你的意思是要先包含name1的记录,然后是包含name2的记录?
-
是的,完全正确。在目前的情况下,名称是唯一的,但这不相关,是吗?
-
目前无法通过正常查询实现
-
你是什么意思,独特的?
标签: python mongodb sorting pymongo