面试题答案
一键面试索引设计
为了确保查询性能最优,应该在 customer_id
字段上创建索引。因为查询条件是基于 customer_id
进行筛选,创建该字段的索引可以大大提高查询效率。
索引创建步骤
在MongoDB的 mongo
shell中,可以使用以下命令为 orders
集合的 customer_id
字段创建索引:
db.orders.createIndex( { customer_id: 1 } )
上述命令中的 1
表示升序索引,如果想创建降序索引,可以使用 -1
。
查询语句
在确保索引创建完成后,可以使用以下查询语句查询 customer_id
为 12345
的订单,并只返回 order_id
和 total_amount
字段:
db.orders.find(
{ customer_id: "12345" },
{ order_id: 1, total_amount: 1, _id: 0 }
)
这里的第二个参数用于指定返回的字段,1
表示包含该字段,0
表示不包含。由于 _id
字段默认会返回,所以明确指定 _id: 0
来不返回该字段。