Mongoose不返回嵌套数组的数据

时间:2017-07-23 16:19:46

标签: javascript arrays node.js mongodb mongoose

我是node.js和mongo的新手,如果我的问题的答案显而易见,请提前抱歉。

我正在尝试使用Mongoose获取特定集合中的所有文档。目前只有一份文件,一旦我开始工作就会有更多文件。

这是架构:

//modules/charts.js
var mongoose = require('mongoose');

// define the schema for our chart model
var chartSchema = mongoose.Schema({
     chart: {
        type1: String
    },
    title: {
        text: String
    },
    xAxis: {
        categories: []
    },
    yAxis: {
        min: String,
        title: {
            text: String
        }
    },
    legend: {
        enabled: Boolean
    },
    credits: {
        enabled: Boolean
    },
    tooltip: {
        shared: Boolean
    },
    series: [] 

});

// create the model for charts and expose it to our app
module.exports = mongoose.model('Chart', chartSchema);

到目前为止一切顺利。插入MongoDB的工作原理。从Mongo检索数据更复杂。

以下是我尝试从“图表”集合中提取单个文档的方法:

 //app.js
 var Chart = require('../modules/charts.js');
 app.get('/index',  function(req, res) {

    Chart.findOne({ _id: "597448fe4cd05307209accc7"}, function (err, docs) {  

        console.log(docs);
        res.render('./pages/index',{ chart: docs });

这是输出,这是我在调用console.log(docs)时看到的:

{ _id: 597448fe4cd05307209accc7,
  __v: 0,
  series: [ { name: 'Salary', data: [Array] } ],
  tooltip: { shared: true },
  credits: { enabled: false },
  legend: { enabled: false },
  yAxis: { min: '0', title: { text: 'Does it work already?' } },
  xAxis: { categories: [ '2010', '2013', '2017' ] },
  title: { text: 'tratata' },
  chart: { type1: 'column' } }

如您所见,我获取数据:[Array]而不是数组本身。如果我从控制台查询mongo,我可以看到该数组中的数据,因此它不是空的,Mongoose由于某种原因不会返回它。

如果我使用find()而不是findOne()(这就是我计划在最后做的事情),输出更令人沮丧:

[ { _id: 597448fe4cd05307209accc7,
  __v: 0,
  series: [ [Object] ],
  tooltip: { shared: true },
  credits: { enabled: false },
  legend: { enabled: false },
  yAxis: { min: '0', title: [Object] },
  xAxis: { categories: [Array] },
  title: { text: 'tratata' },
  chart: { type1: 'column' } } ]

系列数组变为[[Object]],yAxis,title变为[Object],xAxis.categories变为[Array]。

如何让Mongoose返回完整的文件或文件?

看起来我错过了什么。花了几个小时试图找出答案,但还没有找到答案。任何帮助将不胜感激。

0 个答案:

没有答案