У меня есть такой класс
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("$**")
).