目前我是这么存的,team collection
{
"_id" : ObjectId("5a9a9b33c68fa11f9cc60288"),
"name" : "WE",
"players" : [
ObjectId("5a9a9b33c68fa11f9cc60289"),
ObjectId("5a9a9b33c68fa11f9cc6028a"),
ObjectId("5a9a9b33c68fa11f9cc6028b"),
ObjectId("5a9a9b33c68fa11f9cc6028c"),
ObjectId("5a9a9b33c68fa11f9cc6028d")
],
"__v" : NumberInt(0)
}
model是
module.exports = mongoose.model('Teams', new Schema({
name: String,
players: [{
type: Schema.Types.ObjectId,
ref: 'Players'
}]
}));
一个战队下面有很多队员,我创建team的时候怎么插入player呢 如下代码不行:
function loadTeamPlayerData() {
const data = require('../mockdata/players');
data.forEach(item => {
let playerIds = [];
item.players.forEach((player, index) => {
let playerModel = new Player({name: player.name})
playerModel.save(() => {
playerIds.push(new ObjectId(playerModel._id))
// teamModel.players.push(playerModel._id)
})
})
let teamModel = new Team({name: item.team, players: playerIds})
teamModel.save().then(() => {
console.log('load team: %s', item.team)
console.log(playerIds)
})
})
}
假数据 data/player.js
{
team: 'WE',
players: [
{
name: 'xiye'
},
{
name: 'Mystic'
},
{
name: 'Condi'
},
{
name: 'Zero'
},
{
name: '957'
}
]
}]