0

如果每个文档都有一个对象数组,假设:

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

我使用爱好作为索引,那么我的数据库中的所有文档将如何以排序方式存储?它会考虑哪个字段对索引中的所有文档进行排序?

4

1 回答 1

0

您可以在这样的字段上创建索引hobbies作为复合索引

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

就像hobbies一个数组一样,最终如果你得到hobbies.title,hobbies.frequency它也将是一个数组,所以如果 MongoDB 找到一个要索引的数组,那么它将在该特定字段上创建多键索引(基本上在上述场景中,你的文档将展开为两个一个文档title & frequency用于数组中的第一个对象,另一个文档用于数组中的第二个对象,按升序排列)。

于 2020-04-02T15:59:21.993 回答