定义了一个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
H
H
引用 karlsun__legacy_5386cce8a087f456200fc1eemongoose帮你加个s所以你定义的user,在mongodb中应该是users
@karlsun 我这里是先用其他的模块往mongodb数据库中插入的数据.现在想换mongoose试试的.所以之前user 数据库中collecion的名称都是我自定义的(乱写的)
H
@karlsun 搞定了!还真是你说的那样,我用user Model新建了一条数据,然后查询以后就有了,数据库也多了一个users的数据集合。 不过假如我想关联现有的数据集合 呢?
P
引用 karlsun__legacy_5386cce8a087f456200fc1eemongoose帮你加个s所以你定义的user,在mongodb中应该是users
@hc2014 你可能需要将数据按照你写的schema先导进去才能取出数据来吧。
H
引用 karlsun__legacy_5386cce8a087f456200fc1eemongoose帮你加个s所以你定义的user,在mongodb中应该是users
@pockry 问题就像@karlsun 说的那样,mongoose默认给集合名称加了个s,可是我现在的问题是,假如我想访问现有的数据就应该怎么做?
参与回复
登录后即可参与回复。登录