gpt4 book ai didi

google-cloud-datastore - 在 Google Datastore 查询中过滤子实体属性上的实体

转载 作者:行者123 更新时间:2023-12-01 09:51:15 24 4
gpt4 key购买 nike

我的数据存储实体将具有 embedded entity type 的属性.

在我将它们保存如下后( 我正在使用 gcloud v0.27.0 ):

dataset.save([{
key: dataset.key({ path: ['MyKind', 1] }),
data: {
foo: 'bar',
zxc: {
nested: {
foobar: 32
}
}
}
},
{
key: dataset.key({ path: ['MyKind', 2] }),
data: {
foo: 'a string',
zxc: {
nested: {
foobar: 132
}
}
}
}
], function(error) { console.log(error); });

有什么方法可以查询具有 zxc.nested.foobar=132 的实体吗? ?

我运行如下图所示的查询,但没有显示任何结果。

enter image description here

最佳答案

您可以通过用点连接属性名称并使用连接的字符串作为查询中的属性名称来实现这一点。

在 Cloud Datastore v1beta3 API 中,JSON 请求如下所示:

{
"query":
{
"kinds":
[
{
"name": "MyKind"
}
],
"filter":
{
"propertyFilter":
{
"property":
{
"name": "zxc.nested.foobar"
},
"operator": "EQUAL",
"value":
{
"integerValue": "132"
}
}
}
}
}

请注意,为了显示结果,必须对每个属性进行索引。这是 JSON API 中的默认情况:
{
"key":
{
"path":
[
{
"kind": "MyKind",
"id": 1
}
]
},
"properties":
{
"zxy":
{
"entityValue":
{
"properties":
{
"nested":
{
"entityValue":
{
"properties":
{
"foobar":
{
"integerValue": "132"
}
}
}
}
}
}
}
}
}

默认情况下,数据存储客户端库通常也会索引属性,但一些旧版本的 gcloud-node (例如 0.27.0)可能不会。

关于google-cloud-datastore - 在 Google Datastore 查询中过滤子实体属性上的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37290722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com