Api 如何使用CosmosDb中的容器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:

正如标题所解释的,我希望使用id获取项目。 现在,我已经设置了getapi,它返回cosmosdb中容器内的所有文档。 现在我要做的是设置GETAPI,它将使用一个特定的id并返回该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;

好的,现在试试这个