数据存储区获得范围内的最后一个密钥?

时间:2016-10-23 06:30:39

标签: javascript node.js google-app-engine key

我根据一些谷歌文档建议创建了一组对象,这些对象是您希望拥有局部性的对象。

所以我的对象有'Name#00000001'形式的键。我的事情是我需要一个操作,我需要获得最后一个这样的操作,所以我可以用下面的代码得到它们。

var query = datastore.createQuery('Post')
        .select('__key__')
        .filter('__key__', '>=', datastore.key(['Post', req.query["Thread"] + "#00000001"]))
        .filter('__key__', '<=', datastore.key(['Post', req.query["Thread"] + "#99999999"]));

事情就是我做

之类的事情
var query = datastore.createQuery('Post')
        .select('__key__')
        .filter('__key__', '>=', datastore.key(['Post', req.query["Thread"] + "#00000001"]))
        .filter('__key__', '<=', datastore.key(['Post', req.query["Thread"] + "#99999999"]))
        .order('__key__',{descending: true})
        .limit(1);

失败了。看来我根本无法按键排序。除此之外,这些项目还有时间戳,但似乎你不能按1项过滤,也不能按另一项排序。无论如何在没有查询所有内容的情况下获取带有查询的最后一项?

1 个答案:

答案 0 :(得分:0)

在Google Cloud-Java中,请参阅StructuredQuery。你可以.setOrderBy(OrderBy.asc(&#34; __ key __&#34;))