我正在 Mongo 中开发我的第一个数据库。我正在使用 Mongoose 创建模型。 Soooo,我有一些问题。 我创建了以下模型:
teams.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const Teams = new Schema({
_id: {type: Number},
name: {type: String, required: true},
url: {type: String, required: true},
hash: {type: String, required: true},
}, {
versionKey: false,
});
module.exports = mongoose.model('Team', Teams);
roster.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const Roster = new Schema({
_id: {type: Number},
team_id: {type: Number, ref: 'Teams'},
country_id: {type: Number, required: true, ref: 'Countries'}
}, {
versionKey: false,
});
module.exports = mongoose.model('Roster', Roster);
我在这里保存了一些球队和球员(例如这里的数据):
首先我创建了团队(根据我的 api 请求)
const Team= require('../models/team');
await Team.init();
let team = new Team({
_id: 1,
name: 'Guano',
url: '/afsafd.php',
hash: '21321fadsf'
});
team.save(function (err) {
if (err) {
throw new Error('Problem with save team');
}
});
然后,我创建玩家:
const Roster = require('../models/roster');
await Roster.init();
let player_1 = new Roster({
_id: 777,
team_id: 1,
contry_id: 2
});
let player_2 = new Roster({
_id: 333,
team_id: 1,
contry_id: 55
});
ros.push(player_1, player_2)
try {
await Roster.insertMany(ros);
} catch (err) {
throw new Error(err);
}
毕竟这一切,我想看看我的关系如何:
#this is function, which used in my route.
let qq = await Team.find({_id: 1}).populate('roster.team_id').exec();
//let qq = await Team.find({_id: 1}).populate('roster').exec(); tried(same output)
//let qq = await Team.find({_id: 1}).populate('roster'); tried(same output)
return qq;
我明白了:
[
{
_id: 1
name: "Guano"
}
]
但我想要这个:
[
{
_id: 1,
name: "Guano",
players: [{}] //array of my Roster obj.
}
]
我做错了什么?