Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将mongoose json结果转换为数组?_Node.js_Mongoose - Fatal编程技术网

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,为我工作很好。