猫鼬-填充多个ID

时间:2019-09-14 20:52:50

标签: mongodb mongoose mongoose-schema mongoose-populate

我是猫鼬的新手,我整天都在努力地了解猫鼬。我设法做一些简单的例子,但是现在我创建了两个模式:

首先是UserSchema,其中包含一些用户详细信息:

const UserSchema: mongoose.Schema = new mongoose.Schema ({
  name: String,
  email: String
});

第二个是MatchSchema巫婆,我想填充用户详细信息,但是我不确定是否可以执行以下操作:

const MatchSchema: mongoose.Schema = new mongoose.Schema ({
  player_one: {
    id: String,
    score: Number,
    player_details: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User'
    }
  },
  player_two: {
    id: String,
    score: Number,
    player_details: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User'
    }
  },
  winner: String
  },{timestamps: true});

我可能使用了无法正常工作的东西,任何帮助都会得到体现。

1 个答案:

答案 0 :(得分:0)

您需要使用UserSchema创建一个Mongoose模型并将其命名为“ User”。然后,您可以使用MatchSchema创建一个Match模型。假设UserSchema和MatchSchema在同一文件中,则可以添加以下内容:

const User = mongoose.model('User', UserSchema)
const Match = mongoose.model('Match', MatchSchema)

然后,当您要用用户数据填充匹配模型时:

let data = Match.find({})
             .populate('player_one.player_details')
             .populate('player_two.player_details')