我可以如何将mongoosejson结果转换为数组?

我有一个示例代码,显示结果,并希望将结果转换为数组。

TranModel .find({ quantityout: 1 }, { _id: 0} ) .sort({ tag: 1 }) .select( 'tag' ) .populate( 'createdby' ) .exec(function(err, data){ if(err){ res.json(err) } else { res.json(data) } }) 

结果

 [ { "tag": "TH000001" }, { "tag": "TH000006" }, { "tag": "TH000009" }, { "tag": "TH000011" }, { "tag": "TH000014" } ] 

我需要将结果转换为这样

 [ "TH000001", "TH000006", "TH000009", "TH000011", "TH000014" ] 

你不能直接从Mongoose find查询中获取,但是你可以使用JavaScript Array.map函数来操作输出以获得你要找的内容:

 TranModel .find({ quantityout: 1 }, { _id: 0} ) .sort({ tag: 1 }) .select( 'tag' ) .exec(function(err, docs){ docs = docs.map(function(doc) { return doc.tag; }); if(err){ res.json(err) } else { res.json(docs) } }) 

我拿出了populate调用,因为在这里没有任何意义,因为你没有在输出中包含createdBy