Mongodb 如何填充对象数组?
我有两种型号: 用户:Mongodb 如何填充对象数组?,mongodb,mongoose,nosql,Mongodb,Mongoose,Nosql,我有两种型号: 用户: const mongoose = require('mongoose') const userSchema = new mongoose.Schema({ name: { type: String, required: true, trim: true, unique: true } }, { timestamps: true }) const User = mongoose.mo
const mongoose = require('mongoose')
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true,
unique: true
}
}, {
timestamps: true
})
const User = mongoose.model('User', userSchema)
module.exports = User
const mongoose = require('mongoose')
const scoreSchema = new mongoose.Schema({
score: {
type: Date,
required: true
},
playerId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
}
}, {
timestamps: true
})
scoreSchema.virtual('player', {
ref: 'User',
localField: 'playerId',
foreignField: '_id',
justOne: true
})
const Score = mongoose.model('Score', scoreSchema)
module.exports = Score
得分:
const mongoose = require('mongoose')
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true,
unique: true
}
}, {
timestamps: true
})
const User = mongoose.model('User', userSchema)
module.exports = User
const mongoose = require('mongoose')
const scoreSchema = new mongoose.Schema({
score: {
type: Date,
required: true
},
playerId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
}
}, {
timestamps: true
})
scoreSchema.virtual('player', {
ref: 'User',
localField: 'playerId',
foreignField: '_id',
justOne: true
})
const Score = mongoose.model('Score', scoreSchema)
module.exports = Score
每个用户都有多个分数,这取决于他玩过的游戏的结果
我想列出每个球员名字的所有分数。我知道如何用一分做到这一点:
const score = await Score.findOne()
await score.populate("player").execPopulate()
但如果分数多,它就不起作用了
const scores = await Score.find().sort({ score: "asc" })
await scores.populate("player").execPopulate()
TypeError: scores.populate is not a function
at router.post (/home/oem/code/exam/card-game-online/node-backend/routers/score.js:24:22)
at process._tickCallback (internal/process/next_tick.js:68:7)
如何查询所有分数及其对应的用户?是否需要在每个分数中嵌入每个球员的姓名?我可以填充一个对象数组吗