Node.js 如何将mongoose json结果转换为数组?
我有一个显示结果的示例代码,希望将结果转换为数组Node.js 如何将mongoose json结果转换为数组?,node.js,mongoose,Node.js,Mongoose,我有一个显示结果的示例代码,希望将结果转换为数组 TranModel .find({ quantityout: 1 }, { _id: 0} ) .sort({ tag: 1 }) .select( 'tag' ) .populate( 'createdby' ) .exec(function(err, data){ if(err){
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函数操纵输出以获得所需内容:
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。您无法直接从Mongoose find查询中获得它,但您可以使用JavaScript函数操纵输出以获得所需:
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)
}
})
我执行了填充调用,因为这在这里没有任何意义,因为输出中没有包含createdBy。谢谢JohnnyHK,为我工作很好。谢谢JohnnyHK,为我工作很好。