【问题标题】:mongoose db populate doesn't seem to work猫鼬数据库填充似乎不起作用
【发布时间】:2018-08-29 21:25:03
【问题描述】:

这就是我的模型的样子:

groupModel.js

var Schema = mongoose.Schema;
var groupSchema = new Schema({
  uuid:         String,
  users:        [{type: Schema.Types.ObjectId, ref:'users'}]
});
var Groups = mongoose.model('groups', groupSchema);
module.exports = Groups;

userModel.js

var mongoose = require('mongoose')
var Schema = mongoose.Schema;

var userSchema = new Schema({
  username:         String,
  password:         String,
  firstname:        String,
  lastname:         String,
  email:            String,
  emailVerified:    Boolean
});

var Users = mongoose.model('users', userSchema);
module.exports = Users;

这是我希望让它工作的 api:

/* GET /group/list/:id listing. */
router.get('/list/:id', function(req, res) {
    Group.findOne({uuid : 
req.params.id}).populate('Users').exec(function(err, group){
    if(err) throw err;
    console.log(group);
    res.status(200).send(group);
});
});

这是我得到的回复:

{"_id":"5aaf52b4165e97aae4a0b42c","uuid":"iyzIc","__v":0,"users": 
["58f5acae4733ae5f64XXXXea","590a663c2a32ad28e0XXXX29"]}

由于某种原因,我无法用用户的实际数据替换 id。我希望获得与用户相关的详细信息,而不是两个用户的 ID。难道我做错了什么?我正在尝试学习 nodejs,并希望一些 nodejs 专家能够找到我的愚蠢错误。

编辑: 更改 .populate('Users') -> .populate('users') 解决了这个问题。

【问题讨论】:

  • 用户在填充中被大写是一个问题吗?
  • 我不敢相信我因为大写错误而拔掉头发 :( 非常感谢
  • 很高兴听到!我也将它记录在答案中。

标签: node.js mongoose mongoose-populate


【解决方案1】:

用户被大写是问题!

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 2013-06-20
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2015-05-20
    • 2016-12-24
    • 2014-05-01
    • 2021-02-03
    相关资源
    最近更新 更多