首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在开发人员控制台中选择使用GSQL从Google DataStore对象化数据。

在开发人员控制台中选择使用GSQL从Google DataStore对象化数据。
EN

Stack Overflow用户
提问于 2015-10-15 17:01:07
回答 1查看 44关注 0票数 0

我有一个名为UserEntity的对象化实体,其中包含一个名为user的对象。我想从我的user对象中转储所有上次同步的时间和一些其他数据,以便进行一些分析。我试图使用GSQL在开发人员控制台中做到这一点,但我不知道如何获得我想要的结果。

下面的查询用于获取所有内容

代码语言:javascript
复制
SELECT * FROM UserEntity

使用这个查询获取所有的键

代码语言:javascript
复制
SELECT __key__ FROM UserEntity

这不返回任何内容,如下所示:No data was found.

代码语言:javascript
复制
SELECT user FROM UserEntity

但是我不知道如何(或者我是否可以)从对象中选择单个属性。有没有可能在开发人员控制台中实现这一点,或者我是否应该编写一些代码来实现这一点?

理想情况下,我希望能够这样做

代码语言:javascript
复制
SELECT user.synctime, user.currentLevel FROM UserEntity

下面剥离的UserEntity

代码语言:javascript
复制
@Entity
@Cache
public class UserEntity extends WordBuzzEntity {
    @Id
    private String facebookId;
    public User user = new User(null);
    private HashMap<String, Date> accessTokens = new HashMap<String, Date>();
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-16 07:52:07

这不是数据存储的基本工作方式。数据存储是一个带有一些额外索引的键/值存储。这些值是序列化的协议缓冲区。一般来说,你加载的实体是整体的,不能选择你想要的部分。

数据存储可以执行一些额外的智能操作,直接从索引中选择数据,而不是加载Protobuf值。最明显的是仅使用键的查询(键始终是每个索引的一部分)。更复杂的是“投影”查询,它乍一看像SQL select,但实际上是完全不同的查询,需要维护特殊的索引。但是,这是一种高级性能优化,除非您真正知道自己在做什么,否则不应该追求这一优化。从加载整个实体的简单模型开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33144148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档