如果每个文档都有一个对象数组,假设:
hobbies:[
{
"title": "Swimming",
"frequency": 4
},
{
"title": "Playing",
"frequency": 3
}
]
我使用爱好作为索引,那么我的数据库中的所有文档将如何以排序方式存储?它会考虑哪个字段对索引中的所有文档进行排序?
您可以在这样的字段上创建索引hobbies
作为复合索引:
db.collection.createIndex( { "hobbies.title": 1, "hobbies.frequency": 1 } )
就像hobbies
一个数组一样,最终如果你得到hobbies.title,hobbies.frequency
它也将是一个数组,所以如果 MongoDB 找到一个要索引的数组,那么它将在该特定字段上创建多键索引(基本上在上述场景中,你的文档将展开为两个一个文档title & frequency
用于数组中的第一个对象,另一个文档用于数组中的第二个对象,按升序排列)。