多个过滤器 vs OR , ndb 查询

dav*_*vid 6 google-app-engine app-engine-ndb google-cloud-datastore

这些查询有什么区别:

  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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用 ndb.OR:

    qry = Article.query(ndb.OR(Account.userid >= 40,
                           Account.userid < 50))
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用 ndb.AND:

    qry = Article.query(ndb.AND(Account.userid >= 40,
                            Account.userid < 50))
    
    Run Code Online (Sandbox Code Playgroud)

Tha*_*ris 3

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