App Engine中的listproperty字段是如何排序的?

1 投票
2 回答
619 浏览
提问于 2025-04-16 16:11

我打算把一些数据存储在一个列表属性里,想确认当我从数据库中取出这个实体时,列表里的项目顺序是否会保持不变。这样做有没有保证呢?

为了更清楚,我并不是想根据列表属性里的某些内容来排序结果,我只是想确保如果我有一个字符串的列表(比如:“Sam”,“Alberto”,“Rick”),当我访问这个实体时,它们总是保持这个顺序。

这个问题的回答似乎暗示它们总是会保持不变,但我想确认一下:在App Engine中使用ListProperty还是自定义元组属性?

2 个回答

1

ListProperties的工作方式和Python里的列表一样;它们是有顺序的,并且这个顺序会一直保持不变。

4

文档中的说明是:

一般来说,顺序是会被保留的,所以当你通过查询和 get() 方法获取数据时,列表中的值会和存储时的顺序一致。不过有一个例外:Blob 和 Text 类型的值会被移动到列表的最后面;但它们之间的顺序还是保持不变的。

(来自 http://code.google.com/appengine/docs/python/datastore/datamodeling.html)

所以,如果你只存储字符串,它们应该会按照正确的顺序返回。

撰写回答