Node.js 如何通过Google数据存储中的嵌套键进行查询?

Node.js 如何通过Google数据存储中的嵌套键进行查询?,node.js,google-cloud-datastore,Node.js,Google Cloud Datastore,我有用户,存储在特定的唯一ID下。我需要通过某个属性查询它们,但当我的唯一ID是密钥的一部分时,我无法确定如何执行该操作 const user1 = { id: 1, name: 'John Smith', cityId: 102, }; const user1 = { id: 2, name: 'Rudy Black', cityId: 102, }; const upsertUser = user => { const key

我有用户,存储在特定的唯一ID下。我需要通过某个属性查询它们,但当我的唯一ID是密钥的一部分时,我无法确定如何执行该操作

const user1 = {
    id: 1,
    name: 'John Smith',
    cityId: 102,
};

const user1 = {
    id: 2,
    name: 'Rudy Black',
    cityId: 102,
};

const upsertUser = user => {
    const key = datastore.key([ 'users', user.id ]);

    return datastore.upsert({ key, data: user });
});

const getUsersInCity = async cityId => {
    const query = datastore.createQuery('users').filter('cityId', '=', cityId);

    const [ users ] = await datastore.runQuery(query);

    return users;
};

upsertUser(user1);
upsertUser(user2);

console.log(await getUsersInCity(102)); // Expected: John Smith, Rudy Black


您可以尝试通过ID查询值的代码示例,它使用以下代码:

const key = this.datastore.key(['Customer', id:number]);
await this.datastore
  .get(key)
  .then(results => {
    console.log(results);
  })
  .catch(err => { console.error('ERROR:', err); });
此代码是从文章中获取的。本文提供了一些很好的查询示例,您可以查看这些示例

我建议您查看一下,并使用上面的代码作为起点

如果这些信息对你有帮助,请告诉我