我正在研究猫鼬在mongodb中的数据库中列出一个集合中的所有数据:
根据要求:
http://localhost:3000/listdoc?model=Organization
我正在执行以下代码:
exports.listDoc = function(req, res) { var Model = mongoose.model(req.query.model); //This is defined and returns my desired model name Model.find().populate('name').exec(function(err, models) { if (err) { res.render('error', { status: 500 }); } else { res.jsonp(models); } }); };
我已经在数据库中输入了条目,但是上面的代码返回了空值。为什么?
编辑:以下代码也返回空:
exports.listDoc = function(req, res) { var Model = mongoose.model(req.query.model); Model.find({},function(err,models){ console.log(models); if (err) { res.render('error', { status: 500 }); } else { res.jsonp(models); } }); };
使用的架构:
var Organization = mongoose.Schema({ name: String });
您的问题是猫鼬将集合复数。猫鼬正在查询“组织”,但您的数据在mongodb中为“组织”。使它们匹配,您应该很好。您可以通过mongoshell在mongodb中对其重命名,也可以告诉mongoose。从猫鼬文档:
var schema = new Schema({ name: String }, { collection: 'actor' }); // or schema.set('collection', 'actor'); // or var collectionName = 'actor' var M = mongoose.model('Actor', schema, collectionName)