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

use*_*412 1 mongoose node.js

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

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)
            }
        })
Run Code Online (Sandbox Code Playgroud)

结果

[
  {
    "tag": "TH000001"
  },
  {
    "tag": "TH000006"
  },
  {
    "tag": "TH000009"
  },
  {
    "tag": "TH000011"
  },
  {
    "tag": "TH000014"
  }
]
Run Code Online (Sandbox Code Playgroud)

我需要将结果转换为这样的结果

[
  "TH000001",
  "TH000006",
  "TH000009",
  "TH000011",
  "TH000014"
]
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 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)
        }
    })
Run Code Online (Sandbox Code Playgroud)

我拿出了populate电话,因为这里没有任何意义,因为你没有createdBy在输出中包括.