根据与 Float 的差异对解析查询进行排序
Sort Parse Query based on difference with Float
我想根据从字段 temperature
到我的变量 referenceTemp
的标量距离对我的解析查询结果进行排序
我试了下面的,当然不行,但是说明了我的意图
var referenceTemp = 47.89
var query = PFQuery(className: "Temperatures")
query.orderByAscending("abs(temperature - referenceTemp)")
我该怎么做?
谢谢!!
您不能在数据库级别执行此操作...但您可以使用两个查询来执行此操作:
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 个查询即可满足您的要求。
我想根据从字段 temperature
到我的变量 referenceTemp
我试了下面的,当然不行,但是说明了我的意图
var referenceTemp = 47.89
var query = PFQuery(className: "Temperatures")
query.orderByAscending("abs(temperature - referenceTemp)")
我该怎么做? 谢谢!!
您不能在数据库级别执行此操作...但您可以使用两个查询来执行此操作:
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 个查询即可满足您的要求。