我一直试图只显示从mongolab到nodejs的简单数据,但由于某种原因它没有显示任何内容。
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
mongoose.connect("mongodb://db-user:pass@ds049084.mongolab.com:49084/mydb");
mongoose.model('collection',{ name:String });
router.get('/', function(req, res, next) {
mongoose.model('collection').find({},function(err,docs){
res.send(docs);
});
});
我已经在mongolab的集合文档中保存了一个名称数据,这是我运行调试脚本时唯一显示的 debug = mynode:* npm start是[]
有谁知道为什么会这样?谢谢。
答案 0 :(得分:0)
修正了它!男人......问题就是我在mongolab上命名集合的方式。我错过了" s"在收集结束时。一旦我删除了该集合并创建了另一个,但这一次是" s"最后,然后它奏效了。
e.g。 命名一个集合' Car'不起作用,但命名为汽车'会以某种方式工作
答案 1 :(得分:0)
由于我的代表,我无法发表评论...... 但要详细阐述..你最后需要“s”的原因是因为当你这样做时:
mongoose.model('<the schema you want to map to in your db>',<yourschema>);
“Mongoose会自动在您的数据库中查找您的模型名称的复数版本”,就像它在Mongoose文档中所说的那样..因此,如果您键入myDbSchema,它将查找myDbSchemas(注意“s”)等等为什么在你的mongolabs Db架构需要额外的“s”...让我有点困惑,但我希望这可以帮助别人! :)这篇文章对我也很有帮助。
FYI Mongoose文档:Mongoose Models Doc