我想根据字段temperature
到我的变量referenceTemp
的标量距离对我的Parse查询结果进行排序
我尝试了以下内容,这当然不起作用,但它说明了我的意图
var referenceTemp = 47.89
var query = PFQuery(className: "Temperatures")
query.orderByAscending("abs(temperature - referenceTemp)")
我该怎么办? 谢谢!
答案 0 :(得分:1)
您无法在数据库级别执行此操作...但您可以使用两个查询执行此操作:
var referenceTemp = 47.89
var query = PFQuery(className: "Temperatures")
query.greaterThan(referenceTemp);
query.orderByAscending();
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) scores.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
//Get the scalar distance for each, store
}
}
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
query.lessThan(referenceTemp);
query.orderByDescending();
query.findObjectsInBackgroundWithBlock...
一旦你拥有最接近的上方和下方,以及它们的标量距离,你可以使用带有标量距离和对象值的键的散列或NSDictionary。根据需要订购,您只需要2个查询。