Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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
Python 谷歌应用引擎NDB排序丢失实体_Python_Sorting_Google App Engine_Google Cloud Datastore_App Engine Ndb - Fatal编程技术网

Python 谷歌应用引擎NDB排序丢失实体

Python 谷歌应用引擎NDB排序丢失实体,python,sorting,google-app-engine,google-cloud-datastore,app-engine-ndb,Python,Sorting,Google App Engine,Google Cloud Datastore,App Engine Ndb,我试图根据分数对从数据集中提取的几个实体进行排序,但目前它只返回1个实体,而不是数据存储中当前的4个实体 模型定义如下: class Place(ndb.Model): """Model for places.""" title = ndb.StringProperty() url = ndb.StringProperty() longitude = ndb.StringProperty() latitude = ndb.StringProperty()

我试图根据分数对从数据集中提取的几个实体进行排序,但目前它只返回1个实体,而不是数据存储中当前的4个实体

模型定义如下:

class Place(ndb.Model):
    """Model for places."""
    title = ndb.StringProperty()
    url = ndb.StringProperty()
    longitude = ndb.StringProperty()
    latitude = ndb.StringProperty()
    score = ndb.IntegerProperty()
    votes = ndb.KeyProperty(repeated = True, kind = 'Vote')
    reviews = ndb.KeyProperty(repeated = True, kind = 'Review')
我想问的10个得分最高的地方是:

places = Place.query().order(Place.score).fetch(10)
我拥有的当前数据集:

这只会返回一个位置,而不会返回其他实体

如何将实体从最高分数排序到最低分数


PS:我在谷歌上搜索了所有地方,找不到任何有效的解决方案。

你做的很好,所以问题在于数据本身

从数据存储控制台的外观上,我可以看出写入是以不同的方式完成的,数据的形状在您获得的实体和其他实体之间非常不同,还有Write Ops列,它告诉我们很多

只有2次写入的实体没有任何属性索引,ID本身除外,它是按升序和降序写入的,导致上述2次写入操作

您得到的实体有4次写入,显然还有其他索引正在写入,它必须是score,否则您将无法获得任何数据。查询仅适用于索引属性,如果筛选器属性在执行时未索引,则实体可以存在,但不可见

如果模型在代码中的外观与本问题中的相同,则再次放置实体应至少写入12个索引


无法告诉您这是什么原因造成的,可能属性最初被索引为False?

您所做的很好,因此问题在于数据本身

从数据存储控制台的外观上,我可以看出写入是以不同的方式完成的,数据的形状在您获得的实体和其他实体之间非常不同,还有Write Ops列,它告诉我们很多

只有2次写入的实体没有任何属性索引,ID本身除外,它是按升序和降序写入的,导致上述2次写入操作

您得到的实体有4次写入,显然还有其他索引正在写入,它必须是score,否则您将无法获得任何数据。查询仅适用于索引属性,如果筛选器属性在执行时未索引,则实体可以存在,但不可见

如果模型在代码中的外观与本问题中的相同,则再次放置实体应至少写入12个索引

无法告诉您这是什么原因造成的,可能属性最初被索引为False?

是的,它们最初都被索引为False。我刷新了数据存储并重新添加了所有内容,现在一切正常。谢谢你清理它-我也有一个更好的理解op的写作和索引。干杯是的,它们最初都被索引为False。我刷新了数据存储并重新添加了所有内容,现在一切正常。谢谢你清理它-我也有一个更好的理解op的写作和索引。干杯