#c# #.net #mongodb
#c# #.net #mongodb
Вопрос:
У меня есть несколько объектов следующей структуры:
class SubObject {
public string Id { get; set; }
}
class MyObject {
public IEnumerable<SubObject> SubObjects { get; set; }
}
Я хотел бы создать индекс по индексу MyObject.SubObjects (есть поиск объектов):
var filter = Builders<MyObject>.Filter.Eq("subObjects.id", someVal);
await Collection.Find(filter).ToListAsync();
Я пытаюсь создать его следующим образом:
var models = new List<CreateIndexModel<MyObject>> {
new CreateIndexModel<MyObject>("{ subObjects.id: 1 }")
};
Collection.Indexes.CreateMany(models);
К сожалению, в настоящее время я получаю сообщение об ошибке:
System.FormatException: 'Invalid JSON input ''.'
Что может быть не так, что я могу улучшить?
Комментарии:
1. Это именно то, что говорит ошибка — недопустимый JSON. Допустимым является
'{"subObjects.id": 1 }'
. Ключ должен быть заключен в кавычки.
Ответ №1:
Вам нужно будет заключить ваше поле в кавычки внутри строки json.
var models = new List<CreateIndexModel<MyObject>> {
new CreateIndexModel<MyObject>("{ "subObjects.id": 1 }")
};
Collection.Indexes.CreateMany(models);