MongoDB C# Driver - Создать текстовый индекс по свойству Dictionary - PullRequest
0 голосов
/ 22 января 2020

У меня есть такой класс

public class MyItem
{
    //other properties
    public Dictionary<string, string> CustomProperties { get; set; } = new Dictionary<string, string>();
}

Я пытаюсь создать для него текстовые индексы и не могу найти способ сделать это для свойства CustomProperties.

Индексы работают для других свойств (обычные строки или списки строк), а также для моих собственных сложных типов. Это просто словарь, который я не могу заставить работать.

Я попробовал следующее:

IndexKeysDefinition<ProjectInfo> keys = Builders<ProjectInfo>.IndexKeys
            .Text("CustomProperties.Values")
            //.Text(x => x.CustomProperties.Values)
            //.Text("CustomProperties.$.Values") <-throws error that field cannot start with $
            //.Text("CustomProperties.$**") <-throws error that field cannot start with $
            ;
        CreateIndexModel<ProjectInfo> indexModel = new CreateIndexModel<ProjectInfo>(keys);
        this.projects.Indexes.CreateOne(indexModel);

Кроме того, поиск по значению CustomProperties работает, когда я go с полным подстановочным индексом (Text("$**")).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...