问题标签 [google-cloud-datastore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
805 浏览

python - 如何获取数据存储查询的第 n 条记录

假设我在 GAE 中有模型 Foo 和这个查询:

query = Foo.all().order('- key ')

我想获得第 n 条记录。实现这一目标的最有效方法是什么?

如果排序属性不是唯一的,解决方案是否会中断,例如下面的:

query = Foo.all().order('-颜色')

编辑:n > 1000

编辑 2:我想开发一种友好的分页机制来显示可用的页面(例如第 1 页、第 2 页、... 第 185 页),并且在查询字符串中需要“?page=x”,而不是“?bookmark =XXX”。当 page = x 时,查询将从该页面的第一条记录开始获取记录。

0 投票
3 回答
381 浏览

python - 数据存储事务限制

在我的 google app 应用程序中,每当用户购买许多合同时,都会执行这些事件(为清楚起见进行了简化):

  • user.cash 减少
  • user.contracts 增加了数字
  • contract.current_price 已更新。
  • market.no_of_transactions 增加 1。

在 rdms 中,这些将被放置在同一个事务中。我认为谷歌数据存储不允许多个模型的实体在同一个事务中。

解决这个问题的正确方法是什么?如何确保如果写入失败,则所有先前的写入都回滚?

编辑:我显然错过了实体组。现在,我将不胜感激有关如何使用它们的更多信息。需要澄清的另一点是谷歌说“仅在交易需要时使用实体组。对于实体之间的其他关系,请使用 ReferenceProperty 属性和键值,它们可以在查询中使用”。这是否意味着我必须同时定义参考属性(因为我需要查询它们)和父子关系(用于事务)?

编辑 2:最后,如果创建实体以在两个父级之间建立 n 对 n 关系,我如何为一个实体定义两个父级?

0 投票
1 回答
1384 浏览

google-app-engine - 如何同步到 Google App Engine 上的开发数据存储?

我在 Google App Engine 的实时数据存储中获得了一些数据,但也希望有一个本地副本以用于本地开发。进行偶尔同步的最佳方式是什么?

0 投票
1 回答
1395 浏览

java - 如何使用 Java 确定 Google AppEngine 数据存储中的给定键是否存在对象?

我正在尝试将分片计数器示例 (code.google.com/appengine/articles/sharding_counters.html) 移植到 Java。唯一的问题是 Java API 没有类似于 Python 的“get_by_key_name”的调用。这是基本思想:

不幸的是,这在我第一次运行它时会引发 JDOObjectNotFoundException。我可以运行查询以确定给定名称的计数器是否存在,但这不是事务性的。另一个线程可以做同样的事情,最后两者都会创建一个具有相同键的对象。

据我了解,事务中支持的唯一操作(对于 Java API)是 get 和 put。那么我如何才能通过键锁定一个尚不存在的对象(即没有'get')并确保我是第一个也是唯一一个创建它的对象?

0 投票
8 回答
7377 浏览

java - App Engine 数据存储区不支持运算符 OR

我正在尝试在 google 数据存储中查询类似的内容(使用 pm --> persistanceManager):

当我执行时 - 我回来了:App Engine 数据存储不支持运算符 OR

对于这种查询,人们体验的最佳方法是什么?

任何帮助表示赞赏!

0 投票
1 回答
806 浏览

google-app-engine - 对 *User* 类型的查询的 Google Datastore 问题

这个问题上,我解决了查询 Google Datastore 以按用户(com.google.appengine.api.users.User)检索内容的问题,如下所示:

上面的工作正常 - 但经过一些混乱后,我意识到这种语法不是很实用,因为需要构建更复杂的查询 - 所以我决定手动构建我的过滤器,现在我得到了例如以下内容(其中过滤器通常作为字符串变量传入,但为了简单起见,现在是内联的):

显然,即使JDOQL 支持field = 'value'这种语法并且它在其他字段(字符串类型和枚举)上也能正常工作,这也不起作用。另一个奇怪的事情是,查看应用引擎仪表板中的数据查看器,“作者”字段存储为用户类型,但值为“user@gmail.com”,然后当我将其设置为参数时(上面的情况很好)我将参数声明为一个字符串,然后传递一个用户(用户)的实例,该实例用一个简单的序列化(我猜)。toString()

有人知道吗?

0 投票
1 回答
6677 浏览

java - 如何在多个参数上动态构建 JDO 查询

可以很容易地使用 JDO 语法来查询多个参数,如下所示:

使用过滤器以编程方式构建字符串很简单:

另一个带有 params 声明的字符串:

不是立即提出一个策略来执行查询,具体取决于过滤器中的哪些参数(并且已被声明),因此您最终会得到一些非常丑陋的临时级联 if-else 语句查询执行的可能排列(所有参数,只有第一个,只有第二个,第一个和第二个等......):

我确信这是一项常见的任务,并且其他人正在以更通用和更有效的方式进行。

有什么建议吗?

0 投票
6 回答
11686 浏览

java - GWT 与 JDO 问题

我刚开始玩 GWT 我很难让 GWT + JAVA + JDO + Google AppEngine 与 DataStore 一起工作。我试图遵循不同的教程,但没有运气。例如,我去了这些教程:TUT1 TUT2

我无法弄清楚我需要如何以及做什么才能完成这项工作。请查看我的简单代码并告诉我需要做什么才能将其保存到数据存储区:

1. 地址实体

2. 个人实体

3. RPC调用

4. RPCCallsService

5. RPCCallsServiceAsync

6. **RPCCalls.gwt.xml

我试图在这些教程中添加 Key 类和其他所有内容,但看起来我错过了一些东西。

这是我的错误: 替代文字 http://vasura.s3.amazonaws.com/Picture2.png

或在我收到此错误之前:

无法将键解析为类型

使这个工作的最佳解决方案是什么?

0 投票
1 回答
769 浏览

google-app-engine - 我的嵌入式键/值数据存储最终会超过 App Engine 限制吗?

我的 Google App Engine 项目中嵌入了BerkeleyDB 键/值数据存储,该项目不使用 Google 数据存储。

当我将应用程序上传到 Google App Engine 时,数据库将小于 1MB。

但是,随着时间的推移,它是否有可能最终超过 App Engine 文件大小的限制

这对我正在运行的生产应用程序有什么影响?

0 投票
2 回答
1638 浏览

java - 如何在 Google App Engine 中获取所有子实体(低级 API)

我在 Google App Engine for Java 中使用低级 API,并希望获取特定父实体的所有子实体:

给定下图:

我想要一个如下列表

这是我最好的尝试: