如何链接 objectId 猫鼬

时间:2021-03-09 19:55:02

标签: javascript mongodb mongoose populate

我想在团队模型上获得 boardId 但我无法填充它 它是空的, 我确实节省了后期团队模型

const TeamSchema = new mongoose.Schema({

teamName:{
    type: String, 
    max: 255,
    unique: true,
   
},
userId:[{
    type: mongoose.Schema.Types.ObjectId,
    unique: true,
    ref: 'User'
}],
boardId:[{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Board',
   
}],
__v: {
    type: Number,
    select: false 
}})

这是板子模型

const BoardSchema = new mongoose.Schema({

title: {
    type: String, 
    max: 255,
    unique: true
},

teamId:[{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Team',
    unique: true
    
}],

listId:[{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'List'
}],
__v: {
    type: Number,
    select: false
},

这就是我在团队和董事会上节省的方式

const team = new Team({
    teamName : req.body.teamName,
     userId: req.user._id,
   
})
try{
    const response = await team.save()

    res.status(200).json({
        message: 'new Team created',
        data: response
    })
}

这就是我在船上省钱的方式

const board = new Board({
    title: req.body.title,
        teamId: req.body.teamId
    })
 try{
   const response = await board.save()
    res.status(200).json({
        message: 'new Board created',
        data: response 
    })

至少我用这个代码填充

const id = req.user._id
    const response = await Team.find({userId: id})
    .populate({
        path: 'boardId',
        select: 'title'
    })
    .populate({
        path: 'userId',
        select: 'email name'
    })
    
    res.status(200).json({
        message: 'My Team',
        data: response == null ?[] : response
    })

保存后,我无法从团队模型中获取填充响应 boardId

 "data": [
    {
        "userId": [
            {
                "_id": "6047a972f3d14800045ed1c3",
                "name": "francesca vania",
                "email": "newemail@gmail.com"
            }
        ],
        "boardId": [],
        "_id": "6047a99cf3d14800045ed1c4",
        "teamName": "how about team name"
    },

0 个答案:

没有答案
相关问题