Arrays 如何使用$push(Mongoose)推送阵列中的多个对象

Arrays 如何使用$push(Mongoose)推送阵列中的多个对象,arrays,mongoose,mongoose-schema,Arrays,Mongoose,Mongoose Schema,将多个对象推入一个数组时遇到很多问题 我尝试了这段代码的几种不同变体,要么直接将对象推送到db,要么只推数组的最后一个对象 下面是我目前正在尝试的代码,它可以工作,但只推送最后一个对象(在本例中是星期三) 我试过了 collection.findOneAndUpdate( { name: 'yyy' }, { $push: { schedule: monday, tuesday, wednesday}} 它只是把星期二和星期三推到了最重要的位置,而不是把它们放在日程表上 这是我用于计

将多个对象推入一个数组时遇到很多问题

我尝试了这段代码的几种不同变体,要么直接将对象推送到db,要么只推数组的最后一个对象

下面是我目前正在尝试的代码,它可以工作,但只推送最后一个对象(在本例中是星期三)

我试过了

collection.findOneAndUpdate(
  { name: 'yyy' }, 
  { $push: { schedule: monday, tuesday, wednesday}}
它只是把星期二和星期三推到了最重要的位置,而不是把它们放在日程表上

这是我用于计划的模式

  schedule: [
    {
        day: { type: String, default: ""},
        closed: { type: Boolean, default: false },
        start: { type: Number, default: 0},
        startap: { type: String, default: "AM"},
        end: { type: Number, default: 0},
        endap: { type: String, default: "PM"}
    }
  ]
下面是我想推送到日程安排数组的日期变量的示例

var monday = { 
            day:"Monday", 
            closed: false, 
            start:"700", 
            startap:"AM", 
            end:"1900", 
            endap:"PM"
};
显然,我可以运行fine并更新代码7次,但我觉得有一种更有效的方法。

您可以使用
$push
$each
。 例如:

您可以将
$push
$each
一起使用。 例如:

var monday = { 
            day:"Monday", 
            closed: false, 
            start:"700", 
            startap:"AM", 
            end:"1900", 
            endap:"PM"
};
collection.findOneAndUpdate(
  { name: 'yyy' }, 
  { $push: { schedule: {$each: [monday, tuesday, wednesday]}}}...