MongoDB中从数组获取YouTube频道视频详情的问题
解决MongoDB获取数组中所有元素指定字段的问题
你的问题出在使用了VideoDetail.0这种数组索引定位,这只会返回数组第一个元素的指定字段,而你需要的是数组中所有视频的信息。以下是两种可行的解决方案:
方法一:使用find方法投影数组字段
直接指定数组内的子字段,MongoDB会返回整个数组,但每个元素仅保留你需要的三个字段:
db.Ammu.find( { _id: ObjectId('64874529be6740b5c6f5961f') }, { "VideoDetail.Video_Id": 1, "VideoDetail.Video_Name": 1, "VideoDetail.Like_Count": 1, _id: 0 // 可选,去掉文档的_id字段 } )
方法二:使用聚合框架拆分数组为单个文档
如果希望每个视频的信息单独成为一条文档返回,使用$unwind拆分数组,再用$project提取字段:
db.Ammu.aggregate([ { $match: { _id: ObjectId('64874529be6740b5c6f5961f') } }, { $unwind: "$VideoDetail" }, // 将数组拆分为单个文档 { $project: { Video_Id: "$VideoDetail.Video_Id", Video_Name: "$VideoDetail.Video_Name", Like_Count: "$VideoDetail.Like_Count", _id: 0 } } ])
内容的提问来源于stack exchange,提问作者rinkaka chirikato
相关产品推荐
相关产品推荐

