How to check if a container exists in cosmos DB using the node sdk?(如何使用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中是否存在容器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用Node SDK检查cosmos DB中是否存在容器?
基础教程推荐
- 从快速中间件中排除路由 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
