这是我的代码:
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安装,如果它没有正确安装,那么我不知道如何解决它。
没有错误:当我运行脚本时,它打印出来:
[]
这就是发生的一切。
我只能假设我正在连接其他地方或其他地方,因此问题名称。
由于
答案 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;