GAE ndb 按键过滤(id)
GAE ndb filter by key(id)
我想按键值过滤(如果可以,按 Id)
开发者控制台提供键值搜索数据。
我想在我的代码中这样做:
DataModel.query(DataModel.key > ndb.Key('DataModel', id_value)).order(
DataModel.date,
DataModel.times).fetch(2000)
哪个引发错误...
我的id_value是整数。
如何搜索和过滤以获得 ID 高于 id_value 的数据?
通过键的不等式过滤很好,问题在于你不能将通过不等式过滤对一件事与通过另一个[=19排序相结合=] 东西。在限制下引用https://cloud.google.com/appengine/docs/python/ndb/queries: ...:
combining too many filters, using inequalities for multiple
properties, or combining an inequality with a sort order on a
different property are all currently disallowed.
这三个限制中的最后一个是您 运行 的限制。
一个选项是从查询中获取所有结果,然后在您的程序中对它们进行排序(而不是在 .order()
子句中)。
第二个选项是查询所有三个字段 () 以减少结果数,然后按上述方式对它们进行排序:
DataModel.query(DataModel.key > ndb.Key('DataModel', id_value),
DataModel.date > some_date,
DataModel.times > some_times)
第三种选择是使用MapReduce处理大量数据。
我想按键值过滤(如果可以,按 Id)
开发者控制台提供键值搜索数据。
我想在我的代码中这样做:
DataModel.query(DataModel.key > ndb.Key('DataModel', id_value)).order(
DataModel.date,
DataModel.times).fetch(2000)
哪个引发错误...
我的id_value是整数。
如何搜索和过滤以获得 ID 高于 id_value 的数据?
通过键的不等式过滤很好,问题在于你不能将通过不等式过滤对一件事与通过另一个[=19排序相结合=] 东西。在限制下引用https://cloud.google.com/appengine/docs/python/ndb/queries: ...:
combining too many filters, using inequalities for multiple properties, or combining an inequality with a sort order on a different property are all currently disallowed.
这三个限制中的最后一个是您 运行 的限制。
一个选项是从查询中获取所有结果,然后在您的程序中对它们进行排序(而不是在 .order()
子句中)。
第二个选项是查询所有三个字段 () 以减少结果数,然后按上述方式对它们进行排序:
DataModel.query(DataModel.key > ndb.Key('DataModel', id_value),
DataModel.date > some_date,
DataModel.times > some_times)
第三种选择是使用MapReduce处理大量数据。