【问题标题】:MongoDB pushing objects to array within objectMongoDB将对象推送到对象内的数组
【发布时间】:2020-07-30 09:55:35
【问题描述】:

我正在尝试将一个新对象推送到一个包含另一个对象内部的对象的数组中(请参阅此处的数据库架构:MongoDB set-up)。尝试在主题内的 subtopics[2] 对象内推送注释。

这是代码,但它最终删除了指定的子主题 id:

router.patch('/:topicId/:subtopicId/note', async (req, res) => {
    try {
        const subtopicNote = await Note.update(
            {_id: req.params.topicId},
            {subtopics : 
                    { _id: req.params.subtopicId, 
                        $push: {
                        notes: 
                            {note: req.body.note}       
                    }
                }
            }
        );
        res.json(subtopicNote);
    } catch (err) {
        res.json({ messsage: err})
    }
})

【问题讨论】:

    标签: arrays mongodb object router patch


    【解决方案1】:

    这对我有用:)

    router.patch('/:topicId/:subtopicId/note', async (req, res) => {
    
        try {
            const subtopicNote = await Note.updateOne(
                {_id: req.params.topicId,  subtopics : {"$elemMatch": {"_id":req.params.subtopicId}}},
                { $push : {
                    'subtopics.$.notes': {note: req.body.note}
                }
                }
            )
    
            res.json(subtopicNote);
        } catch (err) {
            res.json({ message: err})
        }
    })
    

    【讨论】:

      猜你喜欢
      • 2016-03-05
      • 2019-07-20
      • 2019-04-08
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2017-09-26
      • 2021-12-04
      • 1970-01-01
      相关资源
      最近更新 更多