Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine GAE-NDB:预防投影如何改变结果_Google App Engine_App Engine Ndb - Fatal编程技术网

Google app engine GAE-NDB:预防投影如何改变结果

Google app engine GAE-NDB:预防投影如何改变结果,google-app-engine,app-engine-ndb,Google App Engine,App Engine Ndb,我用过,但它确实改变了结果,结果如何不受投影的影响 class T(ndb.Model): name = ndb.StringProperty() name2 = ndb.StringProperty(repeated=True) @classmethod def test(cls): for i in range(0, 10): t = T(name=str(i)) if i%2 == 0: t.name2=["zzz"]

我用过,但它确实改变了结果,结果如何不受投影的影响

class T(ndb.Model):
  name = ndb.StringProperty()  
  name2 = ndb.StringProperty(repeated=True)

  @classmethod
  def test(cls):
    for i in range(0, 10):
      t = T(name=str(i))
      if i%2 == 0:
        t.name2=["zzz"]      
      t.put()

    qr = T.query()
    qo = ndb.QueryOptions(projection=['name', 'name2'])
    items, cursor, more = qr.fetch_page(20, options=qo)
    print len(items)

    qo = ndb.QueryOptions(projection=['name'])
    items, cursor, more = qr.fetch_page(20, options=qo)
    print len(items)
结果是5,10

如何使结果为10,10

感谢

空列表属性(repeated=True)不会被索引,因为投影查询使用该索引返回结果,因此不会返回没有属性值的实体。 您的测试用例可能会受到Tim评论中提到的最终一致性的影响,但这不是唯一的问题。

空列表属性(repeated=True)不会被索引,并且由于投影查询使用该索引返回结果,因此不会返回没有属性值的实体。
您的测试用例容易受到Tim评论中提到的最终一致性的影响,但这不是唯一的问题。

对不起,Tim Hoffman错了。下面的答案是正确的。我已经删除了我的评论,不希望任何人被误导。对不起,蒂姆·霍夫曼错了。下面的答案是正确的。我已经删除了我的评论,不希望任何人被误导。