如何在mongo db中拼合子文档

我的collections有这样的文件

{ "_id" : ObjectId("587c8d0364b6e32706f7edef"), "first_name" : "John", "last_name" : "Doe", "password" : "aasdjsabb12213b21bbcghc1h2", "shift" : "A", "dept" : "Management" "Requests" : [ { "weekId" : 1, "MO" : 1, "TU" : 2, "W" : 3, "TH" : 9, "FR" : 10, "SA" : 6, "SU" : 1 } ] } 

我想将我的查询结果导出到csv,并需要像这样平铺的字段

 { "_id" : ObjectId("587c8d0364b6e32706f7edef"), "first_name" : "John", "last_name" : "Doe", "password" : "aasdjsabb12213b21bbcghc1h2", "shift" : "A", "dept" : "Management" "weekId" : 1, "MO" : 1, "TU" : 2, "W" : 3, "TH" : 9, "FR" : 10, "SA" : 6, "SU" : 1 } 

我正在尝试使用聚合函数,但无济于事。 任何人都可以build议我如何做到这一点?

这是我的工作代码,但我不认为这是正确的方法

 db.req.aggregate([{$unwind:'$Requests'},{$project: {first_name:1,last_name:1,dept:1,"WeekId":"$Requests.weekdId","Mon":"$Requests.MO","Tue":"$Requests.TU","Wed":"$Requests.W","Thu":"$Requests.TH","Fri":"$Requests.FR","Sat":"$Requests.SA","Sun":"$Requests.SU"}},{$out:"results"}]); 

你可以用一个聚合查询来做到这一点,但是它不是很漂亮:

 db.test.aggregate([ {$unwind:"$Requests"}, {$project: {_id:1, first_name:1, last_name:1, password:1, shift:1, dept:1, weekId:"$Requests.weekId", MO:"$Requests.MO", TU:"$Requests.TU", W:"$Requests.W", TH:"$Requests.TH", FR:"$Requests.FR", SA:"$Requests.SA", SU:"$Requests.SU"}}]) .pretty() 

所以基本上展开Requests数组,然后投影出你想要生成的文档。 希望这是有道理的。