尝试在单独的模型中使用模式

时间:2016-03-01 14:52:21

标签: javascript node.js mongodb express mongoose

在mongoose和nodeJs中使用模式的正确方法是什么, 例如,我有一个用户,模式A和模式B,A嵌入B和B到用户

A = module.exports= new Schema({
    _id : false,
    name: { type: String, required: '{PATH} is required.' }
});

B = module.exports= new Schema({
    _id : false,
    name:    { type: String, required: '{PATH} is required.' },
    b1 :    [A],
    b2 : [A]
});

module.exports.User = mongoose.model('User', new Schema({
  id:           ObjectId,
  firstName:    { type: String, required: '{PATH} is required.' },
  lastName:     { type: String, required: '{PATH} is required.' },
  email:        { type: String, required: '{PATH} is required.', unique: true },
  password:     { type: String, required: '{PATH} is required.' },    
  b:       [B]
}));

所以当用户注册时我创建了一个新模型

var user = new models.User({
    firstName:  req.body.firstName,
    lastName:   req.body.lastName,
    email:      req.body.email,
    password:   hash,
  });
  user.save(function(err) {}

我可以像这样创建用户,还是必须添加a=[], b=[]或者我可以在以后添加这些字段?

然后我在nodeJS中实际使用Schema时遇到了麻烦,如果我尝试将它们导出为模型我在模型中出现错误,那么最新工作是创建一个对象A

Var a ={
    name:"name"
};
models.User.findOneAndUpdate(
    user.email,
    {$push: {"b.a":a}},
    {safe: true, upsert: true},
    function(err, model) {
        console.log(err);
    }
);

但是就A和B的模式来说,它是死代码,我根本就没有使用它,我是mongo和Mongoose的新手,也是节点所以它是我自己的一个学习练习所以任何评论如果我这样做是正确的,非常感谢。

0 个答案:

没有答案