我有两个收藏:网球比赛中有两名球员和一名球员
matches
集合如下:
{
"_id" : ObjectId("5ce51febc6dd820a820f20a5"),
"players" : [
ObjectId("5ce51c1af3cd6009a171a5b3"),
ObjectId("5ce51c1af3cd6009a171a350")
],
"result" : "4:6 6:3 7:6(7) 7:6(8)"
},
[...]
使用此架构:
const matchsSchema = Schema({
players: [{ type: Schema.Types.ObjectId, ref: 'Player' }],
result: String
})
和players
这样的集合:
{
"_id" : ObjectId("5ce51c1af3cd6009a171a5b3"),
"name" : "Serena Williams",
"country" : "USA"
},
[...]
使用此架构:
const playersSchema = mongoose.Schema({
name: String,
country: String
})
在这里都很容易。我需要为matches
集合中的玩家添加额外的数据,该数据仅与特定比赛中的玩家相关,因为该原因将其放置在比赛中而不是玩家中。 >
我需要一个matches
集合,例如:
{
"_id" : ObjectId("5ce51febc6dd820a820f20a5"),
"players" : [
{
ref: ObjectId("5ce51c1af3cd6009a171a5b3"),
prob: 2.1
},
{
ref: ObjectId("5ce51c1af3cd6009a171a350"),
prob: 2.9
},
],
"result" : "4:6 6:3 7:6(7) 7:6(8)"
},
[...]
然后用populate
,我需要这个:
{
"_id" : ObjectId("5ce51febc6dd820a820f20a5"),
"players" : [
{
name: "Serena Williams",
country: "USA"
prob: 2.1
},
{
name: "Garbiñe Muguruza",
country: "Spain",
prob: 2.9
}],
"result" : "4:6 6:3 7:6(7) 7:6(8)"
},
[...]
反正有做这个模式吗?