面试题答案
一键面试- 分析:
- 要加速对特定用户在特定时间段内按订单金额排序的查询,需要考虑
user_id
、order_time
和amount
字段。 - 因为
user_id
和order_time
用于筛选数据,amount
用于排序,最佳索引应该包含这些字段,并且字段顺序很重要,user_id
和order_time
在前,amount
在后。
- 要加速对特定用户在特定时间段内按订单金额排序的查询,需要考虑
- 创建索引代码: 在MongoDB shell中,可以使用以下代码创建复合索引:
db.your_collection_name.createIndex({user_id: 1, order_time: 1, amount: -1});
上述代码中,your_collection_name
需要替换为实际存储电商订单数据的集合名称。{user_id: 1, order_time: 1, amount: -1}
表示创建一个复合索引,其中user_id
和order_time
按升序排列,amount
按降序排列。这种索引结构有助于快速定位特定用户在特定时间段内的数据,并按订单金额从高到低排序。