Mongodb-Mongoose映射与种群的关系

Mongodb - Mongoose Mapping relations with populations

本文关键字:关系 种群 映射 Mongodb-Mongoose      更新时间:2023-09-26

我有两个模型:User和Block。用户可能有很多块,我需要一种方法来映射这两个模型之间的关系。我在猫鼬文档中遇到了种群,并试图用我的模式来设置它:

/models/block.js:中

var mongoose = require('mongoose');
module.exports = mongoose.model('Block',{
  _creator:{type:mongoose.Schema.Types.ObjectId, ref:'User'},
  name:String,
});

/models/user.js:中

var mongoose = require('mongoose');
module.exports = mongoose.model('User',{
  username:String,
  password:String,
  email:String,
  blocks:[{type: mongoose.Schema.Types.ObjectId, ref:'Block'}]
});

当我保存一个区块时:

router.post('/block/new',function(req,res){
  var block;
  block = new Block({
    name = req.body.name,
    _creator = req.session.user
  });
});

creator属性不会保存到集合中。我可以确认块确实保存了。当我转到控制台并搜索块(db.blocks.find())时,会显示新的块,但不会显示对块创建者的任何引用。为什么这不起作用?

我发现了发生了什么。id作为字符串存储在req.session.user中。我需要从req.user._id 中提取它