c# - 如何从 CosmosDB 中的现有容器中获取带有索引的 ContainerProperties
问题描述
我创建了一个具有容器属性的容器,其中ContainerProperties
包含索引。
以后怎么ContainerProperties
从宇宙取回来。我使用以下代码:
FeedIterator<ContainerProperties> resultSet = CosmosDatabase.GetContainerQueryIterator<ContainerProperties>( ($"select * from c where c.id = \"{collectionName}\"") );
FeedResponse<ContainerProperties> queryProperties = resultSet.ReadNextAsync().Result;
ContainerProperties containerProperties = queryProperties.Resource.ToList().FirstOrDefault()
有一个ContainerProperties
并且名称填写正确,这就是我想要的,但是索引是空的。和containerProperties.IndexingPolicy.IncludedPaths
不containerProperties.IndexingPolicy.ExcludedPaths
包含任何元素。但是当我创建它时,它确实如此。
解决方案
从评论来看,您使用的是 SDK 的预览版,请更新到最新的 GA 版本,也就是3.0.0
此时。
在该版本上,运行您共享的代码会返回一个ContainerProperties
填充了 IndexingPolicy 的实例。
ContainerProperties containerDefinition = new ContainerProperties(new Guid().ToString(), "/id");
containerDefinition.IndexingPolicy.ExcludedPaths.Add(new Cosmos.ExcludedPath()
{
Path = "/*"
});
ContainerResponse response = await cosmosDatabase.CreateContainerAsync(containerDefinition);
FeedIterator<ContainerProperties> resultSet = cosmosDatabase.GetContainerQueryIterator<ContainerProperties>(($"select * from c where c.id = \"{response.Container.Id}\""));
FeedResponse<ContainerProperties> queryProperties = resultSet.ReadNextAsync().Result;
ContainerProperties containerSettings = queryProperties.Resource.ToList().FirstOrDefault();
Assert.AreEqual(containerDefinition.IndexingPolicy.ExcludedPaths.First().Path, containerSettings.IndexingPolicy.ExcludedPaths.First().Path);
推荐阅读
- javascript - React Native 将异步函数导出到组件中
- python - 如何在 matplotlib 中放大 3D 绘图
- reactjs - 如何截断 apexcharts 热图中的标签?
- php - $this 在不使用 -> 时指的是什么
- facebook - 没有在 Facebook 评论中获取“来自”属性
- xcode - Android Studio、Xcode、Cocopods
- cordova - 如何更改 SHA -1 证书指纹 Ionic/Cordova
- kubernetes-helm - 使用 Spinnaker 部署 Helm 图表
- sql - 拉出与聚合函数的 (min) 匹配的单独列
- node.js - 如何连接多个 SMSC IP