我是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返回完整的文件或文件?
看起来我错过了什么。花了几个小时试图找出答案,但还没有找到答案。任何帮助将不胜感激。