Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅从对象数组gcloud数据存储中获取选定对象_Javascript_Node.js_Google Cloud Platform_Google Cloud Datastore - Fatal编程技术网

Javascript 仅从对象数组gcloud数据存储中获取选定对象

Javascript 仅从对象数组gcloud数据存储中获取选定对象,javascript,node.js,google-cloud-platform,google-cloud-datastore,Javascript,Node.js,Google Cloud Platform,Google Cloud Datastore,我的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"

我的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"
      }
    ]
  }
 ]
 }
 }
 };
我想查询添加的时间、人员id和地点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对象,但我得到的另一个place_id为13的对象不应该出现

1) 我怎样才能只得到一个对象

2) 是否可以在数据存储中使用“in”运算符,如
places.place\u id in(12,13)

谢谢。

您正在(简单)查询
人员
种类,因此结果将是
人员
实体,其中包括整个
位置
数组

places
数组中仅使用一个位置来获取
persons
实体的唯一方法是执行以下操作:。从技术上讲,您可以获得这样的
人员
实体的数组-每个匹配的位置一个,但是由于您也通过
place\u id
进行过滤,因此该数组将只包含一个元素

您需要特别注意,因为您还需要在数组属性上进行投影,请参见。并检查相关的投影

否,筛选不支持在运算符中使用
,请参见

您正在对
人员
种类进行(简单)查询,因此结果将是
人员
实体,其中包括整个
位置
数组

places
数组中仅使用一个位置来获取
persons
实体的唯一方法是执行以下操作:。从技术上讲,您可以获得这样的
人员
实体的数组-每个匹配的位置一个,但是由于您也通过
place\u id
进行过滤,因此该数组将只包含一个元素

您需要特别注意,因为您还需要在数组属性上进行投影,请参见。并检查相关的投影

否,筛选不支持
运算符中的
,请参阅