Cosmos DB 查询在 Data Explorer 中有效,但无效 Node.js

Cosmos DB Query Works in Data Explorer But Not Node.js

我正在尝试 运行 使用 Node.js 对我的 cosmos 数据库进行以下查询。

const querySpec = {
    query: "SELECT * FROM Users u WHERE u.id = @email",
    parameters: [
        {
            name: "@email",
            value: "testuser@gmail.com"
        }
    ]
};

const { result: results } = client.database(databaseId).container(containerId).items.query(querySpec).toArray();
if (results.length == 0) {
    throw "No matching user";
} else if (results.length > 1) {
    throw "Account found";
}

const user = results[0];
console.log(user);

但是我一直收到错误 TypeError: results is undefined。该查询在数据资源管理器中运行良好。如果我使用 console.log,databaseIdcontainerId 打印我需要它们的值。

为什么我会收到此错误?

我认为您收到此错误的原因是因为 query 是一个 async 方法,而您没有等待它。您可以尝试更改以下代码行吗:

const { result: results } = client.database(databaseId).container(containerId).items.query(querySpec).toArray();

至:

const { result: results } = await client.database(databaseId).container(containerId).items.query(querySpec).toArray();

看看是否能解决问题。