使用 mongoose 将对象附加到 mongoDB 中的对象数组

Posted

技术标签:

【中文标题】使用 mongoose 将对象附加到 mongoDB 中的对象数组【英文标题】:append object to array of objects in mongoDB using mongoose 【发布时间】:2021-06-04 21:04:38 【问题描述】:

这是我在猫鼬中的架构

const companySchema = new mongoose.Schema(
    country: 
        type: String,
        required: true
    ,
    username: 
        type: String,
        unique: true,
        required: true
    ,
    password: 
        type: String,
        required: true
    ,
    vaccine: [
        name: String,
        price: Number,
        availibility: Number,
        needed: Number
    ]

, 
    timestamps: true
);

我创建了一个表单,它提供疫苗对象的输入(名称价格可用性和需要),其数据可在 req.body 中获得。如何使用猫鼬附加它?

【问题讨论】:

如果您需要更新数组中除插入之外的特定对象,请通知我 【参考方案1】:

只需使用 findOneAndUpdate() :

let vaccine = ...  // you object trying to add
let filter =  ...  // your filter you are trying to target the collection

Company.findOneAndUpdate(filter,  $addToSet:  vaccine: vaccine)

如果您想获得更新后的结果,只需使用 new :true。

完整示例:

let company = await Company.findOneAndUpdate(filter,  $addToSet:  vaccine: vaccine, new:true)

【讨论】:

以上是关于使用 mongoose 将对象附加到 mongoDB 中的对象数组的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose:如何将附加字段添加到子文档数组中

Mongoose:如何将附加字段添加到子文档数组中

Mongoose Mongodb 查询对象数组

Mongoose、Cygwin 和 MongoDB - 不保存

Mongoose、Cygwin 和 MongoDB - 不保存

node中mongodb数据库的使用(下载使用mongoose包)及mongodb数据库的常用命令