Api 如何使用CosmosDb中的容器id获取单个项目
正如标题所解释的,我希望使用id获取项目。 现在,我已经设置了getapi,它返回cosmosdb中容器内的所有文档。 现在我要做的是设置GETAPI,它将使用一个特定的id并返回该id的文档 这就是我所尝试的Api 如何使用CosmosDb中的容器id获取单个项目,api,express,postman,azure-sql-database,azure-cosmosdb,Api,Express,Postman,Azure Sql Database,Azure Cosmosdb,正如标题所解释的,我希望使用id获取项目。 现在,我已经设置了getapi,它返回cosmosdb中容器内的所有文档。 现在我要做的是设置GETAPI,它将使用一个特定的id并返回该id的文档 这就是我所尝试的 app.get('/:id', async (req, res) => { try { const dbResponse = await cosmosClient.databases.createIfNotExists({ id:
app.get('/:id', async (req, res) => {
try {
const dbResponse = await cosmosClient.databases.createIfNotExists({
id: databaseId
});
let database = dbResponse.database;
const { container } = await database.containers.createIfNotExists({id: containerId});
// const querySpec = {
// query: "SELECT * FROM c WHERE c.id = 4040c"
// };
const result = await (database.container.items.id);
console.log(result);
} catch (error) {
console.log(error);
res.status(500).send("Error with database query: " + error.body);
}
})
使用database.container.items.id时出现错误“TypeError:无法读取未定义的属性“id”
我在postman中使用以下路径运行GET方法:localhost:3000/4040c。
其中4040c是存储在数据库中的文档的实际id
现在我正在考虑使用SQL查询,但我不知道如何使用,甚至不知道它是否正确。
任何提示或指导都非常感谢。谢谢。使用文档资源上的GET方法
https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-id}
如果这是一个分区容器,则需要在标头中传递分区键值。您可以在中获得完整的语法和示例,如果您知道项的id和分区键值,请尝试以下操作:
const item = container.item('item-id', 'item-partition-key-value');
const result = await item.read();
const itemDetails = result.resource;
好的,现在试试这个