与GAE进行交易时,可以传递实体,或者如果传递总是将密钥传递给实体.例如,假设我将资金从一个实体转移到另一个实体.我应该这样做:
@ndb.transactional(xg=True)
def transfer_money(key1, key2, amount):
entity1 = key1.get()
entity2 = key2.get()
entity1.money -= amount
entity2.money += amount
ndb.put_multi([entity1, entity2])
Run Code Online (Sandbox Code Playgroud)
或者这样可以:
@ndb.transactional(xg=True)
def transfer_money(entity1, entity2, amount):
entity1.money -= amount
entity2.money += amount
ndb.put_multi([entity1, entity2])
Run Code Online (Sandbox Code Playgroud)
还是取决于其他因素?
python google-app-engine transactions app-engine-ndb google-cloud-datastore
我知道如何使用一键搞定所有实体Book.get_by_id(key)
,其中Book是一个ndb.Model.
如何获得同类中的所有密钥?它是否正在使用fetch()(https://cloud.google.com/appengine/docs/python/ndb/queryclass#Query_fetch)?
python google-app-engine app-engine-ndb google-cloud-datastore
在将我的代码部署到云后使用google appengine时出现此错误,我使用objectify索引进行过滤.
这是我的包含索引的java类(Entity)文件
@Entity
public class Session{
@Index private Integer year;
@Index private Key<Institute> institute;
//some other manipulation goes below
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用objectify从数据存储区调用实体列表时
ofy().load().type(Session.class).filter("institute",t).order("year").list();//order by year
Run Code Online (Sandbox Code Playgroud)
它在我的控制台上抛出以下错误,下面的图像显示它,抱歉不太清楚
我在Google Cloud Endpoints上创建了一个API,可以从Datastore中的单个实体获取所有数据.使用Objectify执行NoSQL请求(非常简单的一个:从实体中选择*).
此数据存储区实体填充了200行(实体),每行(实体)具有相同类型的子实体列表:
因此,当我获取API时,会返回一个JSON.它的大小约为641Ko,有17K线.
我想减少那段时间,因为它真的很高......我已经:
它有点帮助,但我不认为这是最有效的方式......
我应该使用Big Query更快地生成JSON文件吗?或者也许有另一种解决方案?
google-app-engine google-cloud-endpoints google-cloud-datastore
是否可以发出类似的东西
RENAME COLUMN col1 col2
Run Code Online (Sandbox Code Playgroud)
在 Google Cloud Spanner 中?从 DDL 来看这是不可能的;如果不是,这是 Beta 版的设计选择还是限制?
database database-schema google-cloud-platform google-cloud-spanner
我们目前正在为 Spanner 检索 DatabaseClient,如下所示:
DatabaseClient dbClient = spanner.getDatabaseClient(...)
Run Code Online (Sandbox Code Playgroud)
跨多个线程使用这个 DatabaseClient 对象是否安全?具体来说,我们想要依赖注入 DatabaseClient 的一个实例,并想了解它是否是线程安全的并且可以重用,或者每个线程是否应该调用 spanner?
这是在 Web API 服务中使用的,因此对 URL 的大量传入请求,每个传入请求都需要一个扳手连接。什么是最好的分享对象?例如,我们不希望每个会话都必须加载 Google JSON 凭据(我们假设发生在 SpannerOptions Builder 中)。
java thread-safety google-cloud-platform google-cloud-spanner
我们可以在Google Spaner DB中使用地理空间查询吗?如果不是,是否还有其他方法可以通过在应用程序服务器中移动空间计算来在SQL中使用空间查询?
我似乎陷入了困境,因为没有太多关于如何将 firestore 与 ngrx 一起使用的指南或教程。
假设我们有组织列表,所有这些都将在 2 个组件中使用,即组件 A 和组件 B。
现在,每次发生更改时,都会调用 LOAD_ACTION_SUCCESS,将我们的数据保存到每个存储状态。
但这需要组件首先调度 LOAD_ACTION,这对于 REAL_TIME_DATA 来说可能有点错误,因为之后它将继续更新。即使不使用时。
不再使用 2 个数据副本作为状态。
这让我想到:
任何帮助我进一步发展的信息或指导都是值得赞赏的,我似乎陷入了这样一个微不足道的问题,显然我可以继续编码,但更希望它是正确的。
当谈到 ngrx 时,处理实时数据似乎让我感到困惑。
示例也将受到赞赏。
firebase ngrx ngrx-effects ngrx-store google-cloud-firestore
该系统本身很容易理解,但难以实现。而且,出于安全原因,我开始思考如何做到这一点。
我当时想让该功能在前端Firebase脚本中工作,只是在那里做所有事情,例如检查该用户是否已经发布了喜欢/不喜欢,如果用户单击则删除/添加/切换。问题在于此方法的安全性:用户无法创建一个新功能,该功能将不会检查类似消息是否已发布吗?
如果可能的话,该系统应如何工作?现在我的逻辑是:
Clicked like:
locally activate/deactivate like button and remove dislike active class if on
check docs for this user/doc like
`1`? -> remove this doc from collection
`0`? -> switch to `1`, because `0` is dislike
`undefined`? -> create doc with `vote: 1`
change (+1/-1 or +2/-2) the value of post votes fields
Run Code Online (Sandbox Code Playgroud)
一样不喜欢。但是对于这么小的功能,听起来确实很复杂。也许可以在不失去安全级别的情况下,通过用户/投票来进行额外的收集?还是使用http-triggers可以在某种程度上帮助您?在某些类似PHP的语言上,此功能会容易得多,所以我现在很害怕。
database data-modeling firebase google-cloud-platform google-cloud-firestore
database ×2
firebase ×2
java ×2
python ×2
geospatial ×1
ios ×1
ngrx ×1
ngrx-effects ×1
ngrx-store ×1
objectify ×1
sql ×1
swift ×1
transactions ×1
xcode ×1