本文介绍了如何使用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中是否存在容器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!