首页 > 解决方案 > 如何在猫鼬中一次将多个文档插入子文档

问题描述

我创建了一个集合,其中包含如下数组的子文档:

const ChapterSchema = new Schema({
    intro: { type: String },
    topics: { type: [TopicSchema] }
},

我想在topics章节的子文档中添加多个主题。我可以通过下面的代码插入一个主题:

ChapterSchema.update(
  {_id: /* doc id */ },
  {$push: {'topics.$': { /* single topic object */ }},
  callback
)

但是,我想在上面的子文档中插入一个主题数组。我怎么能做到这一点?

标签: node.jsmongodbmongoose

解决方案


$push提供了一个特殊的语法$each

ChapterSchema.update(
    { _id: /* doc id */ },
    { $push: {'topics': { $each: /* array of topics */ }},
    callback
)

推荐阅读