试图在我的架构中填充 ObjectID 的数组。我查看了类似的答案,但似乎每个人的做法都略有不同,我自己也找不到解决方案。
我的架构如下所示:
var GameSchema = new Schema({
title: String,
description: String,
location: String,
created_on: { type: Date, default: Date.now },
active: { type: Boolean, default: true },
accepting_players: { type: Boolean, default: true },
players: [{
type: Schema.Types.ObjectId,
ref: 'User'
}],
admins: [{
type: Schema.Types.ObjectId,
ref: 'User'
}]
});
到目前为止,我一直在尝试像这样填充它,这显然是行不通的
exports.getAdmins = function(req, res) {
Game.findById(req.params.id)
.populate('admins')
.exec(function(err, game) {
return res.json(200, game.admins);
});
};
我讨厌添加到人口问题列表中,但我查看了很多,但没有找到解决方案。任何帮助是极大的赞赏!
编辑:这是我向文档添加管理员的方式
// Add admin to game
exports.addAdmin = function(req, res) {
Game.findByIdAndUpdate(
req.params.id,
{ $push: { 'admins': req.params.user_id }},
function(err, game) {
if(err) { return handleError(res, err); }
if(!game) { return res.send(404); }
return res.json(200, game.admins);
});
};