为什么在插入过程中不尊重模型的名称

时间:2012-10-16 19:18:32

标签: mongodb mongoose

我是mongoose的新手,我试图插入一些数据,但是当我看到rockmongo时,模型应该是“用户”是“用户”,“统计”是“统计”等...

以下是架构:

var UserSchema = new mongoose.Schema({
    username: String,
    facebook_id: String,
    facebook_token: String,
    img: String,
    email: String,
    created_at: { type: Date, default: Date.now }
});

var StatSchema = new mongoose.Schema({
    user_id: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
    detail: {
        right: [{type: mongoose.Schema.Types.ObjectId, ref: 'Question'}],
    wrong: [{type: mongoose.Schema.Types.ObjectId, ref: 'Question'}],
        score: Number
    },
    created_at: { type: Date, default: Date.now }
});

var User = db.model('User', UserSchema);
var Stat = db.model('Stat', StatSchema);

此代码创建“users”和“stats”集合:

    var U1 = new User({ username: "toto", facebook_id: req.params.facebook_id, facebook_token: req.params.facebook_token })
    U1.save(function (err) {
        if (err)
        console.log('U1 save error');
        var S1 = new Stat({ user_id: U1.id })
        S1.save(function (err) {
            if (err)
                console.log('S1 save error');
        });
    });

为什么?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

因为默认行为是使用docs中主要描述的模型名称的较低版本,复数版本(它没有提及较低的部分)。

如果您需要其他内容,可以将自己的集合名称作为第三个参数提供给model

var User = db.model('User', UserSchema, 'User');
var Stat = db.model('Stat', StatSchema, 'Stat');