【问题标题】:Mongoose batch nested objects insertMongoose 批量嵌套对象插入
【发布时间】:2016-01-03 17:29:11
【问题描述】:

我有一个对象数组,其中包含像这样的深层嵌套对象数组:

[{
  "clause": "7",
    "section": [{
      "name": "whatever",
      "subClauses": [{
      "name": "foo",
      "details": [{
        "detail": "bar"
      }]
    }]
  }]
}]

每个数组都有几个项目。在我的 Mongoose 架构中,子文档是单独的集合,即嵌套的 Model.schema。

是否可以设置 Mongoose Schema 来进行批量 Model.collection.insert 为每个子文档创建 _id 字段?

【问题讨论】:

  • 您想拆分不同集合中的数据吗?即:部分集合中的部分,子句集合中的子句等。此外,公共数据是否仍应是元素的一部分?即:子句字段应该出现在所有插入中
  • 是的,对不起,我应该提到子文档有自己的集合,但我从中提取的种子数据是一个巨大的 json 文件!我目前正在通过遍历数组并创建新的 Model() 函数并手动推送每个函数来为数据库播种,这看起来很混乱。
  • 集合是如何分解的?例如,进入sections 集合的文档应该包含其他数组吗?还是应该将所有文件展平?即:如果某个部分有 10 个 subClauses,则 sections 集合中将有 10 个不同的条目

标签: javascript node.js mongodb mongoose batch-processing


【解决方案1】:

这里的问题是 Model.collection.insert 不会为子文档创建 _id,而 Model.create() 会。然而,我发现虽然 Model.create 会给每个子文档提供 _Ids,但它不会将子文档单独保存到数据库中,这意味着如果我调用 SubDoc.find({}),则不会返回任何内容...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 2016-09-19
    • 2013-06-03
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    相关资源
    最近更新 更多