我有一个显示结果的示例代码,并希望将结果转换为数组。
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"
]
答案 0 :(得分:6)
您无法直接从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
。