C# 仅包含某些索引的Cosmos Db集合
我试图C# 仅包含某些索引的Cosmos Db集合,c#,azure-cosmosdb,C#,Azure Cosmosdb,我试图排除所有,并仅包括CosmosDb中某个集合上的某些索引 这是我的密码: // A property in the class... public override IEnumerable<IncludedPath> CollectionIndexes => new List<IncludedPath> { new IncludedPath{ Path= "/\"CreatedOnUtc\"" }, // I have tried "/Create
排除
所有,并仅包括CosmosDb中某个集合上的某些索引
这是我的密码:
// A property in the class...
public override IEnumerable<IncludedPath> CollectionIndexes => new List<IncludedPath>
{
new IncludedPath{ Path= "/\"CreatedOnUtc\"" }, // I have tried "/CreatedOnUtc" as well
// few more indexes...
};
// Code in the CreateCollection method...
collection.IndexingPolicy.ExcludedPaths.Add(new ExcludedPath { Path = "/*" }); // I have tried the code without this line as well
foreach (var path in CollectionIndexes) // Add indexes over certain properties only.
{
collection.IndexingPolicy.IncludedPaths.Add(path);
}
//类中的属性。。。
公共覆盖IEnumerable CollectionIndex=>新列表
{
新建IncludedPath{Path=“/\”CreatedOnUtc\”“},//我也尝试了“/CreatedOnUtc”
//没有更多的索引。。。
};
//CreateCollection方法中的代码。。。
collection.IndexingPolicy.ExcludedPaths.Add(新的ExcludedPath{Path=“/*”});//我也尝试过没有这行代码的代码
foreach(CollectionIndex中的var path)//仅在某些属性上添加索引。
{
collection.IndexingPolicy.includedPath.Add(路径);
}
当我运行代码时,每次都会遇到这样的异常:
消息:{“Errors”:[“索引路径'/\“CreatedOnUtc\””无法找到
已接受,位置“5”附近失败。请确保路径为
有效路径。常见错误包括无效字符或缺少
标签周围的引号。“]}ActivityId:
2627fe24-64a0-46b3-bf9a-13cb160c17a7,请求URI:
/apps/DocDbApp/services/DocDbMaster0/partitions/780e44f4-38c8-11e6-8106-8cdcd42c33be/replications/1p/,
RequestStats:,SDK:Microsoft.Azure.Documents.Common/1.22.0.0,
documentdb dotnet sdk/1.22.0主机/64位
MicrosoftWindowsNT/10.0.16299.0
当我将路径更改为“/CreatedOnUtc”
时,仍然可以看到相同的消息:
消息:{“Errors”:[“无法接受索引路径'/CreatedOnUtc',
位置“3”附近失败。请确保路径是有效路径。
常见错误包括无效字符或缺少引号
标签。“]}ActivityId:30dc7429-df87-4080-912e-60aa731ae809,请求
URI:
/apps/DocDbApp/services/DocDbMaster0/partitions/780e44f4-38c8-11e6-8106-8cdcd42c33be/replications/1p/,
RequestStats:,SDK:Microsoft.Azure.Documents.Common/1.22.0.0,
documentdb dotnet sdk/1.22.0主机/64位
MicrosoftWindowsNT/10.0.16299.0
我错过了什么?这似乎是一些非常基本的东西,但我已经浪费了24小时在这个尝试各种组合
我正在使用C#Sql API来实现这一点。我正在本地PC上的CosmosDb Emulator
上尝试此操作。看起来您缺少索引路径末尾必需的通配符?
索引路径末尾的?
字符是用于查询此属性的查询所必需的。如果计划查询此路径的属性的子属性,则应使用字符*
您可以在上了解更多信息。看起来您缺少索引路径末尾的必要通配符?
索引路径末尾的?
字符是用于查询此属性的查询所必需的。如果计划查询此路径的属性的子属性,则应使用字符*
您可以在上了解更多关于这方面的信息,您为什么要做“/\”id\”
,而不仅仅是“/id”
?我也尝试过“/id”
。我没有看到您在示例中指定索引类型。我说的是这样的:index=newcollection{newrangeindex(DataType.String){Precision=20}}}代码>我想我也试过了,我会再试一次,然后回到这里,我看到你有绝对路径。您是否尝试在结尾添加所需的特殊字符?例如,CreatedOnUtc
的路径应该是/CreatedOnUtc/?
为什么要执行“/”id\”
,而不仅仅是“/id”
?我也尝试了“/id”
。我看不到您在示例中指定了索引类型。我说的是这样的:index=newcollection{newrangeindex(DataType.String){Precision=20}}}代码>我想我也试过了,我会再试一次,然后回到这里,我看到你有绝对路径。您是否尝试在结尾添加所需的特殊字符?例如,CreatedOnUtc
的路径应该是/CreatedOnUtc/?
谢谢!我看过很多文章和视频;但是我想知道我怎么会错过了?
谢谢!我看过很多文章和视频;但我想知道我怎么会错过了?