首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否支持像Mongodb $set那样的部分更新?

是否支持像Mongodb $set那样的部分更新?
EN

Stack Overflow用户
提问于 2016-03-09 06:43:46
回答 2查看 1.5K关注 0票数 2

我使用的是Node.js,不想用每次更新都覆盖整个实体,而且大多数时候只需要更新一个特定的属性,比如计数器。

关于如何在文档中这样做,没有明显的参考。

Node.js版本是否支持像Mongodb $set那样的部分更新?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-09 08:18:54

除了put()和putmulti之外,没有任何DataStore API可以更新实体,所以这是不可能的。

阅读一下从这里开始说明了原因。

在内部,App将实体存储在协议缓冲区中,这是序列化结构化数据的有效机制;有关详细信息,请参阅开放源代码项目页面。不将每个实体属性存储为相应Bigtable行中的单个列,而是使用一个列,该列包含一个二进制编码协议缓冲区,其中包含给定实体的每个属性的名称和值。

简而言之,Datastore中的实体行是底层存储方案中的单个二进制值,这就是为什么不存在用于部分更新的API。

票数 5
EN

Stack Overflow用户

发布于 2017-07-10 14:56:18

没有直接API来更新实体的一个属性。

但是,您可以使用数据存储事务,而不是获取实体、修改它并修改它(使用两个不同的数据存储API调用)。这是实现这一目标的推荐方法。

事务是一个或多个实体上的一组操作。每个事务都保证是原子的,这意味着事务永远不会被部分应用。要么应用事务中的所有操作,要么不应用任何操作。

文档中的示例正在解释如何使用事务“使用相对于当前值的新属性值更新实体:.这正是您要寻找的。”

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

https://stackoverflow.com/questions/35884724

复制
相关文章

相似问题

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