编辑子文档时如何保持Mongoose文档位置

时间:2019-04-25 10:37:01

标签: object mongoose mongoose-schema

我想在保留集合中文档位置的同时编辑子文档。

我使用findOne检索文档,然后使用Object.assign编辑文档子文档。 然后,保存文档。

我在这里阅读了有关职位的信息,但是找不到适用于我的情况的Mongoose find/update subdocument

async editSecondLevel (req, res, next) {
    var body = _.pick(req.body, ['_id', 'name', 'icon', 'category'])

    FirstLevel.findOne({ 'secondLevels._id': body._id }, function (err, firstLevel) {
      if (err) return next(err);
      Object.assign(firstLevel.secondLevels.id(body._id), body)
      firstLevel.save().then(() => {
        return res.send(firstLevel)
      }).catch((e) => {
        res.status(400).send(e)
      })
    }).catch((e) => {
      res.status(400).send(e)
    })
  }

有时,它保持文档(firstLevel)的位置。有时候,不是。

我在这里MongoDB field order and document position change after update中读到,“如果您的更新使文档的大小超出了最初分配的大小,则该文档将被移至集合的末尾”

是否仍然可以保持位置?

预先感谢;)

0 个答案:

没有答案