App Engine中的listproperty字段是如何排序的?
我打算把一些数据存储在一个列表属性里,想确认当我从数据库中取出这个实体时,列表里的项目顺序是否会保持不变。这样做有没有保证呢?
为了更清楚,我并不是想根据列表属性里的某些内容来排序结果,我只是想确保如果我有一个字符串的列表(比如:“Sam”,“Alberto”,“Rick”),当我访问这个实体时,它们总是保持这个顺序。
对这个问题的回答似乎暗示它们总是会保持不变,但我想确认一下:在App Engine中使用ListProperty还是自定义元组属性?
2 个回答
1
ListProperties的工作方式和Python里的列表一样;它们是有顺序的,并且这个顺序会一直保持不变。
4
文档中的说明是:
一般来说,顺序是会被保留的,所以当你通过查询和 get() 方法获取数据时,列表中的值会和存储时的顺序一致。不过有一个例外:Blob 和 Text 类型的值会被移动到列表的最后面;但它们之间的顺序还是保持不变的。
(来自 http://code.google.com/appengine/docs/python/datastore/datamodeling.html)
所以,如果你只存储字符串,它们应该会按照正确的顺序返回。