如何使用Mongoose更新MongoDB中的一个属性?

时间:2019-10-31 14:55:09

标签: javascript arrays json mongodb mongoose

这是我的模特

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp;Extended Properties=Paradox 4.x;";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
OleDbCommand command = new OleDbCommand("", connection);
command.CommandText = @"CREATE TABLE paradox4
(
id  AUTOINCREMENT ,
Last_Name CHAR(20),
First_Name CHAR(15),
PRIMARY KEY (id)
)";
command.ExecuteNonQuery();

如何更新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

2 个答案:

答案 0 :(得分:1)

您可以使用$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 }})

答案 1 :(得分:0)

如果这不是您的意思,请在评论中让我知道,我将编辑答案。

const newArray = [ 1, 2, 3];
const nameToUpdate = 'foo';
mongoose.model('UserData').updateMany({
    name: nameToUpdate
}, {$set: {
    additionalData: newArray
}});