推荐的(最有效的方式)是基于最接近所提供值的一种方法从数据存储中获取单个实体。
例如,我有以下数据模型:
class MyObject(db.Model):
someValue = db.IntegerProperty()
shortDescription = db.TextProperty()
在GET传递值期间,我想查询数据存储区中最接近提供值的对象。
如果距离相同,可以得到多个结果。即如果我有两个对象的someValue分别为2和4,而我传入了3。
任何意见,将不胜感激。
最佳答案
系统会为所有属性自动创建一个升序和降序索引,因此您可以执行以下操作:
results1 = MyObject.all().order('someValue').filter('someValue >=', 3).fetch(50)
results2 = MyObject.all().order('-someValue').filter('someValue <', 3).fetch(50)
这将在您的搜索值附近为您提供两个结果集,最多包含100个对象。
关于google-app-engine - 从数据存储区中获取 “Closest”值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3943817/