首页 > 解决方案 > 如何使用 Mongoose 只更新 MongoDB 中的一个属性?

问题描述

这是我的模型:

import mongoose from 'mongoose';

const UserData = new mongoose.Schema({
    additionalData: Array,
    name: String,
});
mongoose.model('UserData', UserDataSchema);
mongoose.set('useFindAndModify', false);

export default mongoose.model('UserData');

如何更新模型的additionalData属性,UserData例如附加另一个数组。

假设附加数组是

[ 1, 2, 3]

标签: javascriptarraysjsonmongodbmongoose

解决方案


您可以使用$addToSet

await UserData.update({name:"something"},{ $addToSet: { additionalData: [1,2,3] })

或者

await UserData.updateOne({name:"something"},{ $addToSet: { additionalData: [1,2,3] })

如果您没有条件这样做,这将添加到所有文档中

await UserData.update({},{ $addToSet: { additionalData: [1,2,3] })

如果要从数组中删除多个值,请使用$pull

await UserData.update({},{ $pull: { additionalData: { $in: [ 1, 2,3 ] }}})

如果您想删除单个值

await UserData.update({},{ $pull: { additionalData:1 }})

推荐阅读