【发布时间】:2021-10-10 06:01:34
【问题描述】:
我想检查一个容器是否存在,如果不存在,初始化它。我希望得到类似以下的内容:
const { endpoint, key, databaseId } = config;
const containerName = "container1"
const client = new CosmosClient({ endpoint ,key});
const containerDefinition = getContainerDefinition(containerName);
const db = await createDatabase(client, databaseId);
if (!db.containers.contains(containerName)
{
// Do something
}
我不使用“createIfNotExists”的原因是我需要进行第二次调用以检查返回的容器是否填充了项目。我正在创建的容器将保存设置数据,一旦最初创建容器,这些数据将是静态的。此设置检查将根据请求进行,因此我希望尽可能减少数据库调用和操作。
我尝试做类似的事情:
try
{
db.container(containerName).read();
}
catch(err)
{
if(err.message.contains("Resource Not Found"))
{
// do something
}
}
但这似乎不是正确的做法。
任何帮助将不胜感激!
【问题讨论】:
-
为什么不在应用启动时执行 createIfNotExists?
-
这是通过 azure 函数部署的。在有人调用该特定函数之前,容器不会被初始化。
标签: javascript node.js typescript azure-cosmosdb