【发布时间】:2018-11-26 14:32:03
【问题描述】:
我正在使用 Node.js v8.12.0、MongoDB v4.0.4 和 Mongoose v5.3.1。
我想更新一个嵌入的数组子文档而不改变它在数组索引中的位置。并且无需将整个数组加载到内存中,因为该数组将来可能会变得非常大。
我花了很多时间寻找如何实现这一点,但没有运气。
我尝试使用 Mongo 的 $elemMatch 加载仅包含单个相关数组子文档的文档,但这不会让我以任何实际的方式保存子文档。
我还研究了 Mongoose 数组 set 方法,但是为此您需要有子文档数组索引,所以这意味着我需要将整个数组加载到内存中,然后找到子文档索引。
有什么方法可以实现我想要的吗?理想情况下是通过 Mongoose 抽象,所以所有的 Mongoose 中间件,如验证、插件等。
【问题讨论】: