当前位置: 首页 > 知识库问答 >
问题:

在mongodb中的数组字段中推入数组[重复]

钦高峯
2023-03-14

我在一个名为course的模式中有一个名为students的数我创建了一个路由,允许我使用学生的objectid将学生添加到这个数组中,如下所示:

 router.put('/addStudent/:courseID', function (req, res) {
        Course.findOneAndUpdate({courseID: req.params.courseID}, {$push: {students: req.body.students}})
        .populate('students')
        .exec(function (err, course) {

            if (err) return res.status(500).send("There was a problem adding this information to the database");
            res.status(201).send(course);
        })
    });

当我尝试用以下JSON体向我的endpoint发出PUT请求时:

{
    "students":["5b1f06cafa355c2d187c344f"]
}

谢谢!

共有1个答案

爱炯
2023-03-14

您需要在$push中使用$each

Course.findOneAndUpdate(
  { courseID: req.params.courseID },
  { $push: { students: { $each: req.body.students } } }
)
Course.findOneAndUpdate(
  { courseID: req.params.courseID },
  { $addToSet: { students: { $each: req.body.students } } }
)
 类似资料:
  • 问题内容: 我需要在此重命名: 我试过了 但返回:。 问题答案: 如文档中所述,无法使用单个命令直接重命名数组中的字段。您唯一的选择是遍历收集文档,阅读它们并使用$ unset old / $ set new操作更新每个文档。

  • 我想在mongo数据库的数组中添加一个元素: 结果很完美: 更新:猫鼬模式:

  • 所以我有一个选择题列表,我想存储,每次用户回答相同的问题,他对这个问题的答案。所以我想创建一个文档每个用户和他的回答历史每个问题。我做了一个问题数组,其中包含了questionId和一个答案数组(“ans”和他的答案。所以我写了一个基本代码,在这里我为问题1添加了他的第一个答案“a”,现在我想用答案“b”更新这个文档。 我知道这是一个非常基本的问题,但我已经搜索了其他问题,但我无法得到语法工作。我

  • 本文向大家介绍如何在MongoDB中推送数组?,包括了如何在MongoDB中推送数组?的使用技巧和注意事项,需要的朋友参考一下 要推送数组,请在MongoDB中使用$push。首先让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是推送数组的查询- 这将产生以下输出-

  • 本文向大家介绍如何在MongoDB中将元素推入数组?,包括了如何在MongoDB中将元素推入数组?的使用技巧和注意事项,需要的朋友参考一下 要将元素推入数组,请使用$push。首先让我们创建一个包含文档的集合- 以下是在方法的帮助下显示集合中所有文档的查询- 这将产生以下输出- 这是将元素推入MongoDB中的数组的查询- 以下是在方法的帮助下显示集合中所有文档的查询- 这将产生以下输出-

  • 我有以下mongodb文档结构: 我已经能够使用$elemMatch来更新操作中的字段,但当我尝试对参数执行相同的操作(修改)时,它似乎不起作用。我想知道,为了能够通过pid查找特定参数中的字段,我应该尝试其他什么方法来成功更新字段。 我目前拥有但不起作用的更新代码如下所示: