如何编写MongoDB查询将嵌套学生对象数组转换为姓名字符串数组
MongoDB 查询语句实现
你可以通过MongoDB的聚合框架结合$map操作符实现该需求,完整查询语句如下:
db.collection.aggregate([ { $project: { // 保留原有name字段 name: 1, // 重构students字段 students: { $map: { // 指定遍历的原数组 input: "$students", // 定义数组元素的临时变量名 as: "student", // 每个元素返回的内容:取学生对象的name属性 in: "$$student.name" } } } } ])
该语句兼容MongoDB 3.2及以上版本
实现逻辑说明
$project聚合阶段用于自定义返回文档的字段结构,默认会保留_id字段,我们显式指定保留name字段$map操作符会遍历输入的students数组,对每个学生对象做转换,最终输出仅包含学生姓名字符串的新数组,完全匹配你需要的返回结构
内容的提问来源于stack exchange,提问作者krishna
相关产品推荐
相关产品推荐

