如何使用updateOne更新猫鼬模式中的数组?
我的 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 数组?
干杯。
您可以像这样直接更新您的阵列
ScreenImage.updateOne(id, { $set : { guestNames : newArray }})
您需要使用 $set 来替换字段的值,请参阅此mongoDB $set
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句