【发布时间】:2019-05-05 12:07:53
【问题描述】:
我的 gcloud 数据存储中有这个结构
"data": {
"obj": {
"added_time": "new Date().toUTCString()",
"person_id": 13,
"places": [{
"place_id": 12,
"place_name": "First Place",
"place_type": "1",
"fruits": [{
"id": "1",
"name": "orange"
},
{
"id": "2",
"name": "apple"
}
]
},
{
"place_id": 15,
"place_name": "secondPlace",
"place_type": "1",
"fruits": [{
"id": "1",
"name": "Grapes"
},
{
"id": "2",
"name": "Banana"
}
]
}
]
}
}
};
我要查询added_time、person_id和place_id
这是我的综合索引
indexes:
- kind: persons
properties:
- name: obj.person_id
- name: obj.added_time
- name: obj.places.place_id
我试过这个查询
const query = datastore
.createQuery("persons")
.filter("obj.person_id", "=", 13)
.filter("obj.places.place_id", "=", 12);
这是有效的,但它也给了我所有其他的地方。 例如,在这个查询中,我应该只得到 place_id 为 12 的地点对象,但我得到了另一个不应该出现的 place_id 为 13 的对象。
1)我怎样才能只得到一个对象?
2) 是否可以在数据存储区中使用“in”运算符,例如places.place_id in (12,13)
谢谢。
【问题讨论】:
标签: javascript node.js google-cloud-platform google-cloud-datastore