【发布时间】:2018-12-30 01:10:13
【问题描述】:
游戏架构
const { Schema, model } = require('mongoose');
const gameSchema = Schema({
_id: Schema.Types.ObjectId,
name: { type: String, required: true },
description: String,
calc: [{ type: Schema.Types.ObjectId, ref: 'Calc' }]
});
module.exports = model('Game', gameSchema);
计算架构
const { Schema, model } = require('mongoose');
const calcSchema = Schema({
_id: Schema.Types.ObjectId,
preset: { type: String, required: true },
datasets: [{ type: Schema.Types.ObjectId, ref: 'Dataset' }],
model: String,
});
module.exports = model('Calc', calcSchema, 'calc');
获取游戏路线
router.get('/', passport.authenticate('jwt', { session: false }), (req, res) => {
Game.find()
.select('_id name calc')
.populate('calc')
.then(games => res.status(200).json(games))
.catch(err => res.status(500).json({ error: err }));
});
不是用 Calc 对象填充 calc 属性,而是替换 ids,calc 属性变成一个空数组。如何正确使用填充?我的代码中是否有明显的错误?
简而言之:populate() 的结果是 calc: [] 而不是 calc: [{Calc object}, ...]
【问题讨论】:
-
您到底想达到什么目的?目前还不清楚您的问题和您面临的问题。请编辑您的问题。
标签: node.js mongodb express mongoose