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,databaseId
和 containerId
打印我需要它们的值。
为什么我会收到此错误?
我认为您收到此错误的原因是因为 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();
看看是否能解决问题。
我正在尝试 运行 使用 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,databaseId
和 containerId
打印我需要它们的值。
为什么我会收到此错误?
我认为您收到此错误的原因是因为 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();
看看是否能解决问题。