Nodejs Mongoose获取属性值的结果数组

我怎样才能得到一个没有对象结构的属性值的数组。 这是我的模式

_id: { type: Schema.Types.ObjectId, ref: "User" }, services: [{ _id:false, service_category: { type: Schema.Types.ObjectId, ref: "ServiceCategory" }, sub_services :[{ _id:false, service : { type: Schema.Types.ObjectId, ref: "Service" } }] }] 

这就是我要查询结果的方式

  Vendor.find({ '_id': req.user._id, 'services.service_category':req.body.category_id},'services.sub_services.service').exec(function (err, rtnobj) { if (err) { console.log(err); return (err); } else{ res.send(rtnobj); } }) 

但它给了我这个输出

 [ { "_id": "598b28271a0b551af8fbf849", "services": [ { "sub_services": [ { "service": "service 1 _id" }, { "service": "service 2 _id" } ] } ] } ] 

但是我需要以下格式的结果

 [ "service 1 _id", "service 2 _id",......] 

有没有什么标准的方法来做到这一点。 或者任何其他方法

谢谢

如果你想使用查询,那么你可能只是继续做你现在做的事情,然后映射结果:

  Vendor.find({ '_id': req.user._id, 'services.service_category':req.body.category_id},'services.sub_services.service').exec(function (err, rtnobj) { res.send(rtnobj.services.sub_services.map(each => each.service)) }) 

你也可以使用聚合框架来做类似的事情。 但我认为上述将是最习惯的。