如何使用Node SDK检查cosmos DB中是否存在容器?

How to check if a container exists in cosmos DB using the node sdk?(如何使用Node SDK检查cosmos DB中是否存在容器?)
本文介绍了如何使用Node SDK检查cosmos DB中是否存在容器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要检查容器是否存在,如果不存在,则将其初始化。我希望是这样的:

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&qot;的原因是我需要进行第二次调用,以检查返回的容器是否填充了项。我要创建的容器将保存设置数据,一旦容器初始创建,这些数据将是静电。此设置检查将针对每个请求进行,因此我希望尽可能减少数据库调用和操作。

我尝试了如下操作:

try
{
 db.container(containerName).read();
}
catch(err)
{
  if(err.message.contains("Resource Not Found"))
  {
    // do something
  }
}

但这似乎不是正确的做法。

如有任何帮助,我们将不胜感激!

推荐答案

我不太清楚为什么需要这样做,因为通常在应用程序实例的生命周期中,您只需要做一次这样的事情。但我不建议这样做。

当您查询Cosmos以测试数据库、容器等是否存在时,这将命中该帐户的主分区。主分区有点像一个小型Cosmos数据库,其中包含您的所有帐户元数据。

此主分区分配了少量用于管理元数据操作的RU。因此,如果您的应用程序设计为针对每个请求进行这些类型的调用,则您的应用程序很可能会受到费率限制。

如果有某种方法可以设计它,使其不必查询容器是否存在,那么我会转而这样做。

这篇关于如何使用Node SDK检查cosmos DB中是否存在容器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)