gpt4 book ai didi

node.js - Mongoose - 从现有数据库数据创建模型

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:28 25 4
gpt4 key购买 nike

使用 Mongoose,我有一个先前从数据库中提取的文档,其中包含 _id 属性,采用原始 Object 格式(IE,没有所有文档方法,直接从数据库中提取)。

如何使用该数据创建 mongoose.Model 实例,而无需系统为模型分配新的 _id?我想最终保存该模型并让它更新数据库中的现有文档。

<小时/>

更新:结合使用 @Jack Newcombe 的方法,然后将 model.isNew 设置为 false,我收到以下错误:“Mod on _id not allowed”。现在它知道要更新,但 Mongoose 并没有从更新请求中删除 _id 字段。模型上还必须有一个系统属性,告诉 Mongoose 是否在更新请求期间删除 _id。有什么想法吗?

最佳答案

我已经弄清楚了,但我确信还有更好的方法。我很惊讶没有办法使用 Mongoose 的 API 轻松做到这一点。

无论如何,您需要满足以下条件:

  1. 像这样创建模型:var model = new Model(data,
    {_id:false});
  2. 手动将 model.isNew 设置为 false
  3. 手动告诉 Mongoose _id 字段尚未修改,如下所示:delete model.$__.activePaths.states.modify._id

我不太喜欢这个的原因是因为我利用了 JavaScript 没有真正 protected 方法这一事实,而且我基本上是在破解 Mongoose 以便让它工作。因此,如果有人有的话,我很想听到其他答案。

关于node.js - Mongoose - 从现有数据库数据创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20725103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com