Google Cloud Datastore是否支持Mongodb $ set的部分更新?

我使用的是Node.js,并且不希望每一次更新都覆盖整个实体,大部分时间只需要更新一个特定的属性,例如计数器。

关于如何在文档中做到这一点没有明显的参考。

Node.js版本的Google Cloud Datastore是否支持Mongodb $ set的部分更新?

没有DataStore API来更新put()和putmulti()之外的实体,所以它是不可能的。

从这里读一点说明了为什么。

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

简而言之,数据存储中的实体行是底层存储scheme中的单个二进制值,这就是为什么没有用于部分更新的API。

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

但是,可以使用数据存储事务来取代实体,修改它并更改它(使用两个不同的数据存储区API调用)。 这是推荐的方法来达到这个primefaces。

交易是一组Google云数据存储在一个或多个实体上的操作。 每笔交易都保证是primefaces的,这意味着交易不会部分应用。 事务中的所有操作都被应用,或者它们都不被应用。

文档中的示例解释了如何使用事务来“使用相对于当前值的新属性值更新实体”。您正在寻找哪一个。