如何使用Mongoose从Mongodb获取数据?

时间:2011-09-19 15:42:46

标签: mongodb mongoose

使用mongoose从mongo中获取任何数据时遇到问题。连接似乎很好,因为我已经打印出调试语句。我已经搜索了可能导致这种情况的高低,但是afaik我正在设置架构和集合。

这是我在名为posts.js的文件中的内容:

var mongoose = require('mongoose');

var db = mongoose.connect('mongodb://localhost:27017/sister', function(err) {
  if (err) throw err;}  //this does not get printed
);

mongoose.connection.on("open", function(){
  console.log("mongodb is connected")}  //this gets printed
);

var Schema = mongoose.Schema;
var thePost = new Schema({
        name : String
});

mongoose.model('post', thePost);
var posts = db.model('post');

posts.find({}, [], function(err, calls) { 
  console.log(err, calls, calls.length);  //prints out: null [] 0
});

为了播种数据,我已经在我的mongo shell中完成了这个操作,它插入了一个文档然后显示找到所有可以找到的文件:

> randumb = { name : 'emile' };
{ "name" : "emile" }
> db.post.insert(randumb);
> db.post.find({});      
{ "_id" : ObjectId("4e775e8cc24f31883fdafbab"), "name" : "emile" }

2 个答案:

答案 0 :(得分:0)

尝试更改

var posts = db.model('post');

var posts = mongoose.model('post');

答案 1 :(得分:0)

为了让它更短,请尝试更改:

mongoose.model('post', thePost);
var posts = db.model('post');

为:

var posts = mongoose.model('post', thePost);