我如何将mongoose json结果转换为数组?

时间:2014-09-03 08:43:10

标签: node.js mongoose

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

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"
]

1 个答案:

答案 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