【发布时间】:2019-12-31 03:36:14
【问题描述】:
假设您有以下收藏:
{name: 'john', occupation: 'engineer', country: 'UK', age: 20},
{name: 'allan', occupation: 'teacher', country: 'US', age: 25},
...
你需要找到一些人(例如所有名叫凯文的毒贩)并按照他们的年龄对他们进行排序:
collection.find({name: 'kevin', occupation: 'drug-dealer'}).sort({age: -1})
稍后您可能会执行不同的查询,找到所有毒贩(无论他们的姓名)并按年龄对他们进行排序:
collection.find({occupation: 'drug-dealer'}).sort({age: -1})
在“年龄”上有一个单独的索引会更好还是让它成为几个复合索引的一部分?
部分复合索引:
{occupation: 1, age: 1}
{name: 1, occupation: 1, age:1}
单独索引:
{occupation: 1}
{name: 1, occupation: 1}
{age: 1}
什么会产生最佳性能?各有什么优缺点?
【问题讨论】:
-
它必须是复合索引的一部分。这回答了你的问题了吗? stackoverflow.com/questions/36142299/…