关于mongoose的问题
发布于 5个月前 作者 hc2014 294 次浏览 来自 问答

定义了一个model层访问的入口,代码如下:

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/user');

require('./user');
exports.User = mongoose.model('user');

定义了一个user 的model

var mongoose = require('mongoose');
    var Schema = mongoose.Schema;

    var UserSchema = new Schema({
      username: { type: String},
      pwd: { type: String},
      email: { type: String},
      nickname: { type: String }
    });

mongoose.model('user', UserSchema);

然后我访问的时候代码i这样写的

    var UserModel = mongoose.User;
    UserModel.find({},function(err,user){
        if(err){
            logInfo.info(err.message);
        }else{
            res.render('test_user.html',{user:user}); 
        }
    })

可是最后显示的是插叙的user 数据集合中数据的个数是0,首先,我想问问,我的代码是否有地方写错了,然后如果没有的话,那就是mongoose d model是怎么和mongodb数据库中我的user 库中的user表关联起来的呢?

6 回复

mongoose帮你加个s所以你定义的user,在mongodb中应该是users

@karlsun 我这里是先用其他的模块往mongodb数据库中插入的数据.现在想换mongoose试试的.所以之前user 数据库中collecion的名称都是我自定义的(乱写的)

@karlsun 搞定了!还真是你说的那样,我用user Model新建了一条数据,然后查询以后就有了,数据库也多了一个users的数据集合。 不过假如我想关联现有的数据集合 呢?

@hc2014 你可能需要将数据按照你写的schema先导进去才能取出数据来吧。

@pockry 问题就像@karlsun 说的那样,mongoose默认给集合名称加了个s,可是我现在的问题是,假如我想访问现有的数据就应该怎么做?

回到顶部