面试题答案
一键面试1. 使用 MongoDB 查询语句(假设是 MongoDB 数据库,因为文档结构类似 MongoDB 的文档结构)
db.orders.aggregate([
{
$unwind: "$products"
},
{
$project: {
order_id: 1,
customer_name: "$customer.name",
product_name: "$products.product_name",
_id: 0
}
}
]);
2. 投影操作处理嵌套文档时的注意事项
- 字段路径:在投影中引用嵌套文档的字段时,需要使用点(
.
)符号来指定完整的字段路径,如$customer.name
和$products.product_name
,这样才能准确访问到嵌套层级中的具体字段。 - 展开数组类型的嵌套文档:如果嵌套文档是数组形式(如
products
数组),在投影之前通常需要使用$unwind
操作符将数组展开,以便每个数组元素能独立进行投影操作,否则投影结果可能不符合预期。 - 避免投影
_id
字段:默认情况下,MongoDB 会在查询结果中包含_id
字段。如果不需要该字段,应在投影阶段明确设置_id: 0
来排除它。