mongoose没有按名称识别收藏品

时间:2015-06-30 19:34:18

标签: node.js mongodb mongoose

这是我的代码:

var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'mcfly');

db.once('open', function() {

    var schema = new mongoose.Schema({
        firstname: String,
        lastname: String
    });

    var col = db.model('mathpeep', schema);

    col.find({firstname: 'hey'}, function(err, Col) {
        console.log(Col);
    });
})

我的mongod正常运行,我跑了"芒果"并输入了几个条目到数据库" mcfly"在集合里面" mathpeep"。这段代码基本上是从它工作的另一个地方复制到变量名,所以我不知道什么是错的。

问题是我的数据库看起来像这样:

> use mcfly
switched to db mcfly
> db.createCollection('mathpeep')
{ "ok" : 1 }
> show collections
mathpeep
system.indexes
> db.mathpeep.insert({firstname: 'hey', lastname: 'ayy'})
WriteResult({ "nInserted" : 1 })
> db.mathpeep.insert({firstname: 'aaa', lastname: 'aaaaa'})
WriteResult({ "nInserted" : 1 })
> db.mathpeep.find()
{ "_id" : ObjectId("5592e96566cf1404577ebe1b"), "firstname" : "hey", "lastname" : "ayy" }
{ "_id" : ObjectId("5592e97b66cf1404577ebe1c"), "firstname" : "aaa", "lastname" : "aaaaa" }
> 

然而上面的代码返回一个空文件(?)。当我尝试使用该模式保存文件时也会发生同样的情况:脚本完成没有问题,但是当我使用shell检查数据库时,没有保存任何内容。我从其他地方复制代码,可以很好地保存和读取数据库。我也再次运行mongoose安装,如果它没有正确安装,那么我不知道如何解决它。

没有错误:当我运行脚本时,它打印出来:

[]

这就是发生的一切。

我只能假设我正在连接其他地方或其他地方,因此问题名称。

由于

2 个答案:

答案 0 :(得分:4)

我认为这是因为猫鼬增加s使其复数。所以它正在检查集合mathpeeps。要明确告诉集合名称,请使用第三个参数:

var col = db.model('mathpeep', schema, 'mathpeep');

要确定要在您的代码中添加此内容的查询内容:

mongoose.set('debug', true);

答案 1 :(得分:1)

尝试像这样连接:

var db = mongoose.createConnection('mongodb://localhost:27017/mcfly');

并按照以下方式访问您的收藏:

var col = mongoose.model('mathpeep', new Schema({ firstname: String, lastname: String }), 'mathpeep' ) //here goes your collection name;