В настоящее время я управляю набором списков, содержащих несколько членов. Каждый список может выглядеть по-разному, когда дело касается полей и наименования этих полей.Динамические поля и медленные запросы
Как правило, основной элемент списка может выглядеть так (из моих членов коллекции):
{
"_id" : ObjectId("52284ae408edcb146200009f"),
"list_id" : 1,
"status" : "active",
"imported" : 1,
"fields" : {
"firstname" : "John",
"lastname" : "Doe",
"email" : "[email protected]",
"birthdate" : ISODate("1977-09-03T23:08:20.000Z"),
"favorite_color" : "Green",
"interests" : [
{
"id" : 8,
"value" : "Books"
},
{
"id" : 10,
"value" : "Travel"
},
{
"id" : 12,
"value" : "Cooking"
},
{
"id" : 15,
"value" : "Wellnes"
}
]
},
"created_at" : ISODate("2012-05-06T15:12:26.000Z"),
"updated_at" : ISODate("2012-05-06T15:12:26.000Z")
}
Всех поля под индексом «полей», это поле, является уникальным для текущего списка идентификаторов - и эти поля могут меняться для каждого список ID, что означает новый список может выглядеть так:
{
"_id" : ObjectId("52284ae408edcb146200009f"),
"list_id" : 2,
"status" : "active",
"imported" : 1,
"fields" : {
"fullname" : "John Doe",
"email" : "[email protected]",
"cell" : 123456787984
},
"created_at" : ISODate("2012-05-06T15:12:26.000Z"),
"updated_at" : ISODate("2012-05-06T15:12:26.000Z")
}
в настоящее время мое приложение позволяет пользователям искать динамически в каждом из таможенных полей, но так как они не имеют никаких индексов, этот процесс может быть очень медленным.
Я не верю, что это возможность разрешить создателям списка выбирать, какие поля следует индексировать, но мне действительно нужно ускорить это.
Есть ли решение для этого?