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)
?