猫鼬不按名称识别集合[重复]

Posted

技术标签:

【中文标题】猫鼬不按名称识别集合[重复]【英文标题】:mongoose not recognizing the collection by name [duplicate] 【发布时间】:2015-09-17 18:15:51 【问题描述】:

这是我的代码:

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 运行正常,我运行了“mango”并在集合“mathpeep”内的数据库“mcfly”中输入了几个条目。这段代码基本上是从它工作的另一个地方复制的,一直到变量名,所以我不知道出了什么问题。

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

> 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 安装,如果它没有正确安装,那么我不知道如何修复它。

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

[]

这就是发生的一切。

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

谢谢

【问题讨论】:

编辑了问题名称,以便对像我这样不幸的人更有用 【参考方案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;

【讨论】:

第一行只导致错误,但第二行(如另一个答案)解决了它。非常感谢你们俩 哦,我的错,可能是因为我没有放默认端口(27017)。【参考方案2】:

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

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

为了确保它在你的代码中添加这个查询是什么:

mongoose.set('debug', true);

【讨论】:

这解决了它。知道为什么它会做出如此难以理解的事情吗? 这是默认行为:mongoosejs.com/docs/guide.html#collection

以上是关于猫鼬不按名称识别集合[重复]的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬不发送更新的结果[重复]

如何使用猫鼬防止重复文件mongodb

java集合

为啥猫鼬不更新?

猫鼬不保存对象数组

猫鼬不创建文档