【发布时间】:2023-03-04 13:05:01
【问题描述】:
如何使用 updateOne 更新 mongoose 架构中的数组?
我的 Node.Js 应用程序中有一个模型,它是使用 mongoose 模式制作的。 我的架构的字段之一是数组:
guestsNames: []
我已经能够在此数组中保存项目,但我没有找到更新其中项目的方法。
这是我的整个架构:
const screenImageSchema = mongoose.Schema({
company: {
type: String,
require: true,
trim: true
},
guestsNames: [],
imageName: {
type: String,
require: true
},
defaultImageName: {
type: String,
require: true
},
date: {
type: String,
default: Date.now,
require: true
},
activated: {
type: String,
default: 'Enabled'
},
wsType: {
type: String,
default: 'Image'
}
}, {timestamps: true});
...还有我的 updateOne 方法:
screenImageSchema.methods.updateOne = function(id, screenImage) {
const updatedScreenImage = {
company: screenImage.company,
guestsNames: screenImage.guests,
imageName: screenImage.imageName,
defaultImageName: screenImage.defaultImageName,
date: screenImage.date,
activated: screenImage.activated,
wsType: screenImage.wsType
}
ScreenImage.updateOne(id, updatedScreenImage, {new: true});
}
传递给函数的“screenImage”参数是一个包含我需要的所有信息的对象,包括一个包含所有 guestNames 字符串的数组(我已经检查过参数是否正确传递给对象并且它们是) .除 guestNames 字段外,所有字段都将使用这段代码进行更新。我做错了什么,如何正确更新 guestNames 数组?
干杯。
【问题讨论】:
标签: node.js mongodb express mongoose