2

我有一张桌子,上面有 [Event | 纬度 | 长 | 时间……等等]。给定一个纬度和经度值,我想获取落在纬度/经度特定范围内的所有事件(比如它周围大约 5 英里)。在 SQL 中,我可能会执行以下操作:

SELECT * WHERE LAT > lat+5 and LAT < lat-5
           AND LONG > long+5 and LONG < long-5. 

我可以在谷歌的 ndb 数据库中做类似的事情吗?我看到一个关于单个属性的过滤查询,例如:

qry = Account.query(Account.userid >= 40, Account.userid < 50)

但它似乎不允许多个属性。

问候GA

4

1 回答 1

1

这是 Datastore(不仅仅是 NDB)的限制,您不能这样做。您可以尝试使用 geohashing,或者如果您没有太多数据,只需对一个维度进行范围查询,然后使用 Python 代码过滤另一个维度。

于 2013-09-20T20:44:50.410 回答