Nosql 可以在Google云数据存储中查询没有子体的实体吗?
有没有一种方法可以返回在Google云数据存储中没有子体的实体?如果您的问题是是否可以检索到没有子体的实体,那么是的。您可以通过其键(或通过查询)检索任何实体 但是,如果您打算运行一个检索所有无子实体的查询,这将是不可能的。祖先信息存储在子实体中,因此您应该恢复所有实体的所有祖先密钥(通过),存储其祖先的所有密钥,然后对所有实体运行查询,检查那些不是任何实体祖先的实体 在shell中使用curl和jq,可以如下所示:Nosql 可以在Google云数据存储中查询没有子体的实体吗?,nosql,google-cloud-datastore,datastore,gql,gqlquery,Nosql,Google Cloud Datastore,Datastore,Gql,Gqlquery,有没有一种方法可以返回在Google云数据存储中没有子体的实体?如果您的问题是是否可以检索到没有子体的实体,那么是的。您可以通过其键(或通过查询)检索任何实体 但是,如果您打算运行一个检索所有无子实体的查询,这将是不可能的。祖先信息存储在子实体中,因此您应该恢复所有实体的所有祖先密钥(通过),存储其祖先的所有密钥,然后对所有实体运行查询,检查那些不是任何实体祖先的实体 在shell中使用curl和jq,可以如下所示: export ancestors=$(gcurl -s -H'content-
export ancestors=$(gcurl -s -H'content-type:application/json' "https://datastore.googleapis.com/v1/projects/$(gcloud config get-value project):runQuery?fields=batch%2FentityResults%2Fentity%2Fkey%2Fpath" -d"{
\"partitionId\": {
\"projectId\": \"$(gcloud config get-value project)\",
\"namespaceId\": \"namespace_id\"
},
\"query\": {
\"kind\": [
{
\"name\": \"descendant_entity_name\"
}
],
\"projection\": [
{
\"property\": {
\"name\": \"__key__\"
}
}
]
}
}" | jq '[.batch.entityResults[].entity.key.path | select(length > 1 ) | .[-2].id]')
gcurl -H'content-type:application/json' "https://datastore.googleapis.com/v1/projects/$(gcloud config get-value project):runQuery?fields=batch%2FentityResults%2Fentity%2Fkey%2Fpath" -d"{
\"partitionId\": {
\"projectId\": \"$(gcloud config get-value project)\",
\"namespaceId\": \"namespace_id\"
},
\"query\": {
\"kind\": [
{
\"name\": \"ancestor_entity_name\"
}
],
\"projection\": [
{
\"property\": {
\"name\": \"__key__\"
}
}
]
}
}" | jq '.batch.entityResults[].entity.key.path[-1].id | select(inside(env.ancestors)|not)'