如何在Mongoose中使用population / ref save Schema

时间:2014-09-19 08:20:57

标签: node.js mongoose

首先拥有用户,然后创建商店。 如何创建商店和引用用户?

  • 1个用户到多个sotres
  • 1个商店对1个用户

//架构

 var UserSchema = new Schema({
     name: String,
     stores : [{ type: Schema.Types.ObjectId, ref: 'Store' }]
 });

 var StoreSchema = new Schema({
     name: String,
     user : [{ type: Schema.Types.ObjectId, ref: 'User' }] 
 });

 mongoose.model('Store', StoreSchema);
 mongoose.model('User', UserSchema);

// express / mongoose save()

exports.storeAdd = function (req, res) {

     new Store({
          name : 'store 1',
          user : [{_id:req.session._id}]
     }).save();

};

这不起作用,请帮忙 THX

1 个答案:

答案 0 :(得分:1)

var StoreSchema = new Schema({
  name: String,
  user : [{ type: Schema.Types.ObjectId, ref: 'User' }] 
});

这实际上定义了商店和用户之间的一对多关系。这是故意的吗?如果不是,您应该从用户周围以及save()中删除[,]。

检查以确保req.session._id具有有效的mongoose对象ID,这是保存无效的最可能原因。