如何使用Mongoose更新嵌套数组?

乔士363

到目前为止,这就是我所拥有的。这是我的AnswerSchema,其中嵌套有一个注释数组,我正在尝试更新它。

const AnswerSchema = new Schema({
      user: {
        type: Schema.Types.ObjectId,
        ref: 'user',
      },
      question: {
        type: Schema.Types.ObjectId,
        ref: 'question',
      },
      text: {
        type: String,
        required: true,
      },
      name: {
        type: String,
      },
      avatar: {
        type: String,
      },
      views: {
        type: Number,
      },
      date: {
        type: Date,
        default: Date.now,
      },
      answerLikes: [
        {
          user: {
            type: Schema.Types.ObjectId,
            ref: 'user',
          },
        },
      ],
      comments: [
        {
          user: {
            type: Schema.Types.ObjectId,
            ref: 'user',
          },
          text: {
            type: String,
            required: true,
          },
          name: {
            type: String,
          },
          avatar: {
            type: String,
          },
          commentLikes: [
            {
              user: {
                type: Schema.Types.ObjectId,
                ref: 'user',
              },
            },
          ],
          date: {
            type: Date,
            default: Date.now,
          },
        },
      ],
    })

这是我试图用来更新注释数组文本字段的更新路线

try {
    const updatedAnswer = await Answer.findOneAndUpdate(
      { _id: req.params.answer_id },
      {
        $set: { 'comments.$[comment].text': formattedAnswer },
      },
      {
        arrayFilters: [{'comment._id': req.params.comment_id }],
      },
      { new: true }
    )
    res.json(updatedAnswer)

我不断收到错误消息:“回调必须是一个函数,得到了[object Object]”,却找不到解决方法。有任何想法吗?谢谢!

多里·拉哈夫·威斯伯格

您的代码中的问题是您要将4个参数传递给该findOneAndUpdate函数。第四个参数是一个接受函数的回调:

(err /* an error if occurred */, doc /* the updated document */) => {}

为了解决这个问题,您需要将最后两个参数组合成一个对象,例如:

{
    arrayFilters: [{'comment._id': req.params.comment_id }],
    new: true
}

最终查询:

const updatedAnswer = await Answer.findOneAndUpdate(
    { _id: req.params.answer_id },
    {
        $set: { 'comments.$[comment].text': formattedAnswer },
    },
    {
        arrayFilters: [{'comment._id': req.params.comment_id }],
        new: true
    }
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongoose MongoDB:更新嵌套数组中的对象

来自分类Dev

使用多个索引处的嵌套数组更新Mongoose文档

来自分类Dev

如何在MondoDB中多重更新嵌套数组?

来自分类Dev

MongoDB不更新双嵌套数组中的子文档(使用Mongoose FindByIdAndUpdate)-确切位置已知

来自分类Dev

使用Express和Mongoose更新嵌套数组

来自分类Dev

使用UpdateOne()更新嵌套数组

来自分类Dev

如何使用elemMatch匹配嵌套数组

来自分类Dev

使用索引更新集合中的嵌套数组

来自分类Dev

如何使用Node.js和Mongoose将对象添加到嵌套数组

来自分类Dev

如何在Node.js中使用Mongoose将嵌套数组从后端传递到前端?

来自分类Dev

如何在mongoDB或Mongoose中更新嵌套数组的值

来自分类Dev

如何使用mongoose删除mongo文档中嵌套数组的所有元素?

来自分类Dev

如何使用lodash更新对象的嵌套数组

来自分类Dev

使用yq更新yaml中的嵌套数组值

来自分类Dev

更新嵌套数组mongodb

来自分类Dev

如何使用mongodp和php更新多个嵌套数组文档?

来自分类Dev

如何在MongoDB中更新嵌套数组中的数据

来自分类Dev

如何在MondoDB中多重更新嵌套数组?

来自分类Dev

如何使用Lodash过滤嵌套数组?

来自分类Dev

如何使用ReQL更新RethinkDB中的嵌套数组

来自分类Dev

如何更新 mongodb 嵌套数组中的值?

来自分类Dev

如何使用嵌套数组加载 CSV

来自分类Dev

Mongoose findOneAndUpdate:创建然后更新嵌套数组

来自分类Dev

如何在嵌套数组中实现多字段更新

来自分类Dev

如何使用 setState 填充嵌套数组?

来自分类Dev

如何更新嵌套数组中的值?

来自分类Dev

Excel VBA:如何使用嵌套数组

来自分类Dev

MongoDB:如何更新嵌套数组

来自分类Dev

如何使用 postgresql 构造嵌套数组

Related 相关文章

  1. 1

    Mongoose MongoDB:更新嵌套数组中的对象

  2. 2

    使用多个索引处的嵌套数组更新Mongoose文档

  3. 3

    如何在MondoDB中多重更新嵌套数组?

  4. 4

    MongoDB不更新双嵌套数组中的子文档(使用Mongoose FindByIdAndUpdate)-确切位置已知

  5. 5

    使用Express和Mongoose更新嵌套数组

  6. 6

    使用UpdateOne()更新嵌套数组

  7. 7

    如何使用elemMatch匹配嵌套数组

  8. 8

    使用索引更新集合中的嵌套数组

  9. 9

    如何使用Node.js和Mongoose将对象添加到嵌套数组

  10. 10

    如何在Node.js中使用Mongoose将嵌套数组从后端传递到前端?

  11. 11

    如何在mongoDB或Mongoose中更新嵌套数组的值

  12. 12

    如何使用mongoose删除mongo文档中嵌套数组的所有元素?

  13. 13

    如何使用lodash更新对象的嵌套数组

  14. 14

    使用yq更新yaml中的嵌套数组值

  15. 15

    更新嵌套数组mongodb

  16. 16

    如何使用mongodp和php更新多个嵌套数组文档?

  17. 17

    如何在MongoDB中更新嵌套数组中的数据

  18. 18

    如何在MondoDB中多重更新嵌套数组?

  19. 19

    如何使用Lodash过滤嵌套数组?

  20. 20

    如何使用ReQL更新RethinkDB中的嵌套数组

  21. 21

    如何更新 mongodb 嵌套数组中的值?

  22. 22

    如何使用嵌套数组加载 CSV

  23. 23

    Mongoose findOneAndUpdate:创建然后更新嵌套数组

  24. 24

    如何在嵌套数组中实现多字段更新

  25. 25

    如何使用 setState 填充嵌套数组?

  26. 26

    如何更新嵌套数组中的值?

  27. 27

    Excel VBA:如何使用嵌套数组

  28. 28

    MongoDB:如何更新嵌套数组

  29. 29

    如何使用 postgresql 构造嵌套数组

热门标签

归档