Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何填充对象数组?_Mongodb_Mongoose_Nosql - Fatal编程技术网

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)
如何查询所有分数及其对应的用户?是否需要在每个分数中嵌入每个球员的姓名?我可以填充一个对象数组吗