Cosmos Db 如何检查集合是否为空
Cosmo Db how to check that if the collection is empty
我有一个代码可以获取cosmo db中一个集合中的所有数据,如果集合为空则开始插入。
第一次代码是 运行 但是,SetIterator.HasMoreResults
return 集合是空的,即使集合是空的。
然后会出现错误 Microsoft.Azure.Cosmos.CosmosException : Response status code does not indicate success: NotFound
,我已经检查了一个不为空的集合,代码 运行 没问题。
我可以使用 try catch 来处理它,但这似乎不是一个好的解决方案,有谁知道如何检查集合是否为空?
var itemList = new List<T>();
using (FeedIterator<T> setIterator = _container.GetItemLinqQueryable<T>()
.ToFeedIterator())
{
while (setIterator.HasMoreResults)
{
foreach (var item in await setIterator.ReadNextAsync())
{
itemList.Add(item);
}
}
}
return itemList;
您可以使用索引在 cosmos db 中获取空集合。为此,您可以使用唯一索引。只为不包含任何文档的索引创建唯一索引。
Important
Unique indexes can be created only when the collection is empty
(contains no documents).
要在集合上创建唯一索引,您可以通过 unique indexes
我有一个代码可以获取cosmo db中一个集合中的所有数据,如果集合为空则开始插入。
第一次代码是 运行 但是,SetIterator.HasMoreResults
return 集合是空的,即使集合是空的。
然后会出现错误 Microsoft.Azure.Cosmos.CosmosException : Response status code does not indicate success: NotFound
,我已经检查了一个不为空的集合,代码 运行 没问题。
我可以使用 try catch 来处理它,但这似乎不是一个好的解决方案,有谁知道如何检查集合是否为空?
var itemList = new List<T>();
using (FeedIterator<T> setIterator = _container.GetItemLinqQueryable<T>()
.ToFeedIterator())
{
while (setIterator.HasMoreResults)
{
foreach (var item in await setIterator.ReadNextAsync())
{
itemList.Add(item);
}
}
}
return itemList;
您可以使用索引在 cosmos db 中获取空集合。为此,您可以使用唯一索引。只为不包含任何文档的索引创建唯一索引。
Important
Unique indexes can be created only when the collection is empty (contains no documents).
要在集合上创建唯一索引,您可以通过 unique indexes