【发布时间】:2021-04-28 15:54:05
【问题描述】:
嘿,我想知道如何将 findById 用于数组内的模式?例如,我有以下架构:
const GameSchema = new mongoose.Schema({
users: [
{
user: { type: mongoose.Schema.ObjectId, ref: 'User' },
role: {
type: String,
required: true,
enum: ['user', 'moderator', 'creator'],
default: 'user',
},
},
]
}]
我想用findById之类的mongoose函数来查找用户,比如如下:
const user = await game.users.findById({ user: req.user.id })
它似乎不起作用,因为 users 不是 mongodb 模型。我知道我可以使用 find() 找到用户,如下所示:
const user = await game.users.find(
(gameUser) => gameUser.user == req.user.id
)
唯一的问题是gameUser和req.user.id的类型不一样,我不能用'==='。有没有办法遍历数组并使用猫鼬函数findById?
【问题讨论】:
标签: javascript node.js mongodb express mongoose