推荐的(最有效的方式)是基于最接近所提供值的一种方法从数据存储中获取单个实体。

例如,我有以下数据模型:

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/

10-10 14:39