Я использую MongoDB для хранения различных типов объектов, все в одной коллекции, все объекты соответствуют аналогичному типу. Поля настраиваются для каждого типа объектов. Значения типа поля могут быть текстовыми, целочисленными или плавающими.MongoDB добавить индекс для неизвестных полей
{
objectTypeId: x,
fields: [
{ fieldTypeId: "x1", fieldName: "fieldX1", fieldValue: "x1" },
{ fieldTypeId: "x2", fieldName: "fieldX2", fieldValue: "x2" }
]
}
{
objectTypeId: y,
fields: [
{ fieldTypeId: "y1", fieldName: "fieldY1", fieldValue: "y1" },
{ fieldTypeId: "y2", fieldName: "fieldY2", fieldValue: "y2" }
]
}
Есть ли способ, чтобы добавить общий индекс, который будет индексировать все мое что-то полевые данные, как:
db.records.createIndex({ fields.fieldName: field.fieldValue });
Это должно быть наоборот: '{fieldValue: 1, fieldName: 1}'. Если у меня возник вопрос, OP хочет иметь индекс по полюName для элементов полей, где fieldValue = «y2», например. –
@AlexBlex, в чем разница между '{fieldValue: 1, fieldName: 1}' и '{fieldName: 1, fieldValue: 1}'? –
Извините, мой плохой. Вопрос заключается в индексировании по fieldValue, где fieldName = "fieldY1". Разница заключается в префиксе сортировки: https://docs.mongodb.com/manual/tutorial/sort-results-with-indexes/#use-indexes-to-sort-query-results –