我只是想知道我是否按时间顺序存储了一些数据,是否会按照最近或最近最近或最近最近的顺序返回?对于例如如果我按以下顺序输入数据:A[1], B[2], ...
,如果我对表格执行简单的select
查询,它是否会将列表作为{A, B, ...}
或{..., B, A}
返回?假设我没有设置任何索引,即索引是由appengine自动设置的。我系统设计的一个关键部分取决于这些信息,所以我想在继续之前确认这些信息。任何帮助将受到高度赞赏。我需要数据检索采用LIFO格式,我该如何确保?
答案 0 :(得分:1)
我很确定应用引擎数据存储区没有指定任何保证顺序,并且您使用的持久性框架(JPA?JDO?)也没有。因此,如果它很关键,那么将时间戳与您插入的每个数据一起存储,并为查询添加order by
子句,以确保以适当的顺序检索对象。
答案 1 :(得分:1)
如果未指定排序顺序,将按键排序返回数据。如果您没有指定密钥名称,密钥的顺序将是它们的数字ID,这些ID通常会增加,但由于在运行的实例之间分配ID的方式,因此无法保证单调性。如果您需要保证特定订购,请在该属性上存储时间戳和订单。
答案 2 :(得分:1)
App Engine返回的实体的默认排序顺序 - 如果您未指定另一个实体 - 首先是您已过滤的任何不等式,然后是按键。如果您想按日期排序,则应该包含日期字段并对其进行明确排序。
在keys_only查询中过滤实体的字段是完全有效的。