获取按整数距离排序的文档?

时间:2016-05-05 15:22:13

标签: python mongodb sorting

Mongo有一个$near查询运算符," [s]指定地理空间查询从最近到最远返回文档的点。"

是否有等价的整数?也就是说,我有一组带有amount字段的文档,这些字段是整数。我希望按照金额接近给定金额的顺序获取文件。

例如,假设我有这个集合(mongo shell):

> db.foob.find({}, {amount: 1, _id: 0})
{ "amount" : 10 }
{ "amount" : 20 }
{ "amount" : 50 }
{ "amount" : 100 }
{ "amount" : 1000 }
{ "amount" : 1100 }
{ "amount" : 1300 }

我想要这样的事情:

> db.foob.find({}, {amount: 1, _id: 0}).sortByClosestTo({amount: 400})
{ "amount" : 100 }
{ "amount" : 50 }
{ "amount" : 20 }
{ "amount" : 10 }
{ "amount" : 1000 }
{ "amount" : 1100 }
{ "amount" : 1300 }

如果没有内置查询运算符,有没有办法完成此类操作,只需获取整个集合并执行.sort(key=lambda doc: abs(doc['amount'] - n)

0 个答案:

没有答案