【发布时间】:2018-04-09 16:50:18
【问题描述】:
我正在使用 npm "csv-express" 包将数据导出到 CSV。我无法让嵌套的供应商名称显示在导出的文件中。我使用 $lookup(聚合)从另一个集合中获取供应商名称。
这是我的查询:
db.getCollection('systems').aggregate([
{ "$sort": { "sponsor": 1 } },
{ "$lookup": {
"from": "vendors",
"localField": "vendorID",
"foreignField": "_id",
"as": "vendor"
}
},
{ "$project":{
"sponsor":1,
"address":1,
"city":1,
"state":1,
"vendor.name":1
}
}])
这是查询返回的内容:
/* 1 */
{
"_id" : ObjectId("5ab55fee294f2366c054d5eb"),
"sponsor" : "John Doe",
"address" : "123 Western Ave",
"city" : "Los Angeles",
"state" : "CA",
"vendor" : [
{
"name" : "West Interactive"
}
]
}
我尝试了以下但没有运气。
db.getCollection('systems').aggregate([
{ "$sort": { "sponsor": 1 } },
{ "$lookup": {
"from": "vendors",
"localField": "vendorID",
"foreignField": "_id",
"as": "vendor"
}
},
{ "$project":{
"sponsor":1,
"address":1,
"city":1,
"state":1,
"vendor.[0].name":1
}
}])
任何建议将不胜感激!
【问题讨论】: