如何使用 $push (Mongoose) 在数组中推送多个对象

Posted

技术标签:

【中文标题】如何使用 $push (Mongoose) 在数组中推送多个对象【英文标题】:How to push multiple objects in array using $push (Mongoose) 【发布时间】:2020-02-05 05:18:07 【问题描述】:

将多个对象推入数组时遇到很多麻烦。

我已经尝试了该代码的几种不同变体,我最终要么将对象直接推送到数据库,要么只推送数组的最后一个对象

这是我目前正在尝试的代码,它有效,但只推送最后一个对象(在本例中为星期三)。

  collection.findOneAndUpdate(
   name: 'yyy' , 
   $push:  schedule: monday, schedule: tuesday, schedule: wednesday,
 function (error, success) 
       if (error) 
           console.log("error");
           console.log(error);
        else 
           console.log("success");
           console.log(success);
       
);

我试过了

collection.findOneAndUpdate(
   name: 'yyy' , 
   $push:  schedule: monday, tuesday, wednesday

它只是将星期二和星期三推到了 main 中,而不是将它们放在 schedule 数组中。

这是我用于日程安排的架构

  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"
;

显然我可以正常运行并更新代码 7 次,但我觉得有一种更有效的方法。

【问题讨论】:

【参考方案1】:

您可以使用$push$each 来Append Multiple Values to an Array。 示例:

collection.findOneAndUpdate(
   name: 'yyy' , 
   $push:  schedule: $each: [monday, tuesday, wednesday]...

【讨论】:

以上是关于如何使用 $push (Mongoose) 在数组中推送多个对象的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose - findOneAndUpdate 动态 $push 到数组中

Mongoose - 如何从数组元素中删除对象[重复]

$push 进入深度嵌套的数组 mongoose

Mongoose push() 函数没有将数据推送到数组中

$push 到带有 mongoose 的 MongoDB 中的数组不起作用

Node.js - Mongodb - Mongoose / 无法将数组字符串传递到 $push feild