首页 > 解决方案 > 在 Azure Functions 中,在代码中运行 Cosmos DB 查询

问题描述

我可以在代码本身中运行 Cosmos DB 查询吗?我现在能做的就是在代码运行(输入)之前运行一个查询。我需要的是首先运行一些代码,然后在 cosmos DB 中获取数据。如何使用 javascript 执行此操作?

标签: azureazure-functionsazure-cosmosdb

解决方案


使用输入绑定时,有一个选项(但仅适用于 C#)来拉入 DocumentClient,您可以使用它来运行任何查询或操作。

如果您的约束在 JavaScript 上运行,您当然可以直接在函数中使用Cosmos DB JS SDK ,而不是像这样使用输入绑定:

const cosmos = require('@azure/cosmos');
const endpoint = process.env.COSMOS_API_URL;
const masterKey = process.env.COSMOS_API_KEY;
const { CosmosClient } = cosmos;

const client = new CosmosClient({ endpoint, auth: { masterKey } });
// All function invocations also reference the same database and container.
const container = client.database("MyDatabaseName").container("MyContainerName");

module.exports = async function (context) {
    const querySpec = {
        query: "SELECT * FROM Families f WHERE  f.lastName = @lastName",
        parameters: [
          {
            name: "@lastName",
            value: "Andersen"
          }
        ]
    };

    const { result: results } = await container.items.query(querySpec).toArray();
    context.log(results);
}

COSMOS_API_URL并且COSMOS_API_KEY应该是指向 Azure Cosmos 帐户端点和主密钥的环境变量。您可以根据需要用查询替换数据库和容器的名称和修补程序。


推荐阅读