如何使用在nodejs mongodb中提供引用的对象id

时间:2016-12-21 14:57:35

标签: node.js mongodb mongoose reference schema

没有其他错误,但我只想知道一件事。如何在用户架构对象_id中使用该引用,这意味着当我添加新用户时,location_id将如何使用。

用户架构:

    var userSchema = Mongoose.Schema({ 

        name:{type: String,require:true},
        surname: {type: String,require:true},
        tel: {type: String,require:true},
        age: {type: String,require:true},
        mevki_id: {type: String,require:true},
        location_id: { type: Mongoose.Schema.Types.ObjectId, ref: 'locations' }
});

位置架构:

var LocationSchema = Mongoose.Schema ({         


    il: {type: String, require:true},

    ilce: {type:String, require:true}          

});

UserController - 我在这里添加用户

this.createUser = function(req, res) {

    var la=new Location({il:'istanbul',ilce:'camlica',location_id:la._id}).save(function (err) {
        if (err) return handleError(err);
    });

    var user = new User({
        name:'akif',surname:'demirezen',tel:'544525',age:'45',mevki_id:'2',

    }).save(function (err) {
        if (err) return handleError(err);
    res.send(JSON.stringify(job));
    });

}

1 个答案:

答案 0 :(得分:0)

您的代码中存在多个错误。例如,require属性应为required

其他问题是你设置了la的location_id值,引用了la,那时还没有赋值。

Mongo将在所有对象上自动创建一个名为_id:ObjectId的字段。试试这个:

this.createUser = function(req, res) {

  var la = new Location({
    il:'istanbul',
    ilce:'camlica',
  }).save(function (err, location) {
    if (err) return handleError(err);

    var user = new User({
      name:'akif',
      surname:'demirezen',
      tel:'544525',
      age:'45',
      mevki_id:'2',
      location_id: location._id
    }).save(function (err, user) {
      if (err) return handleError(err);
      // Warning: AFAIK job does not exist, should it be user?
      res.send(JSON.stringify(job));
    });
  });
}