多个过滤器与OR,ndb查询

问题描述 投票:3回答:2

这些查询之间有什么区别:

  1. 随后的过滤器: qry1 = Account.query() # Retrieve all Account entitites qry2 = qry1.filter(Account.userid >= 40) # Filter on userid >= 40 qry3 = qry2.filter(Account.userid < 50) # Filter on userid < 50 as well
  2. 使用ndb.OR: qry = Article.query(ndb.OR(Account.userid >= 40, Account.userid < 50))
  3. 使用ndb.AND: qry = Article.query(ndb.AND(Account.userid >= 40, Account.userid < 50))
google-app-engine app-engine-ndb google-cloud-datastore
2个回答
1
投票

第一个查询执行AND。因此,查询只返回匹配两个不等式的实体。第二个查询执行OR。因此,将返回与任一过滤器匹配的实体。有关ndb查询的更多信息,请查看NDB Queries


2
投票

第三个和第一个查询完全相同。但第二个问题是荒谬的,它最终可能会返回实物中的所有实体。

© www.soinside.com 2019 - 2024. All rights reserved.