【发布时间】: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