Как mongodb сортирует документы, когда объект используется в качестве индекса? - PullRequest
0 голосов
/ 02 апреля 2020

Если в каждом документе есть массив объектов, скажем:

hobbies:[
    {
        "title": "Swimming",
        "frequency": 4
    },
    {
        "title": "Playing",
        "frequency": 3
    }
]

, и я использую хобби в качестве индекса, то как все документы в моей БД будут храниться отсортированным образом? Какое поле будет рассмотрено для сортировки всех документов в индексе?

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете создать индекс в поле hobbies, например, как составной индекс :

db.collection.createIndex( { "hobbies.title": 1, "hobbies.frequency": 1 } )

Так как hobbies - это массив, то в конечном итоге, если вы получите hobbies.title,hobbies.frequency это также будет массив, так что если MongoDB найдет массив для индексации, он создаст multikey-index для этого конкретного поля (в основном, в приведенном выше сценарии ваш документ будет разбит на два документа на title & frequency один для первого объекта в массиве и другой для второго объекта в массиве в порядке возрастания).

...