相关:Automatic ID for embedded entity
我希望在NodeJS中做同样的事情,就像在Java中的链接帖子中做的那样,但是假设库的Node版本中没有Entity或EmbeddedEntity类型(尽我所能)找到),我不知道该怎么做。我正在保存一组嵌入式实体,每个实体上都有2个键。我希望能够为密钥自动生成值 - 保存,让我们称之为embeddedEntityKey
,而不必担心在我的代码中生成随机值。可能的?
答案 0 :(得分:1)
我猜你在这里混淆了两个词。 在java中,很多工作都是由客户端库完成的,包括丰富的数据存储映射技术。在节点中,有两种实体可以存储在父实体中。
您可以指定属性并将对象放入其中。在这种情况下你 只会将普通对象写入属性,这不会 成为和嵌入实体。 例如:
db.save({
key: db.key(["SomeKind"]),
data: {
object: {
someVal: 1
}
}
});
您需要指定父ID才能创建真正的嵌入实体。
db.save({
key: db.key({
path: ["SomeParentKind", "ParentIdOrName", "EmbededEntityKind"]
}),
data: {
someVal: 1
}
});
具体来说,请查看文档中的祖先部分。 https://cloud.google.com/datastore/docs/concepts/entities#ancestor_paths
更新2
使用Node.js中的数据存储保存可能性。
获取后保存
db.get(db.key(["MyKind", db.int("123123123")]))
.then(results => {
let entity = results[0];
entity.prop = 1;
return db.save(entity);
});
使用写入密钥对对象进行初始保存
let object = {
prop: 1,
[db.KEY]: db.key(["MyKind"])
};
db.save(object);
使用传递键作为保存参数进行初始保存
let object = {
prop: 1
};
let key = db.key(["MyKind"]);
db.save({
key: key,
data: object
});