Arrays 在mongoDB中不使用$push更新阵列
我想使用Arrays 在mongoDB中不使用$push更新阵列,arrays,node.js,database,mongodb,mongodb-query,Arrays,Node.js,Database,Mongodb,Mongodb Query,我想使用$push将另一个对象添加到现有数组中,但同时我正在使用$set对同一对象执行另一次更新 我知道我不能在同一字段上使用两个运算符,例如($set和$push) 我想知道是否有其他方法可以使用$set将另一个对象添加到现有数组中,或者是否有其他方法可以在相同的更新请求中执行此操作 我正在考虑使用$set通过检索现有历史记录并与新历史记录连接来更新数组。但这需要额外调用数据库。您可以使用 this._MyModel.findOneAndUpdate( { email }, {
$push
将另一个对象添加到现有数组中,但同时我正在使用$set
对同一对象执行另一次更新
我知道我不能在同一字段上使用两个运算符,例如($set
和$push
)
我想知道是否有其他方法可以使用$set
将另一个对象添加到现有数组中,或者是否有其他方法可以在相同的更新请求中执行此操作
我正在考虑使用$set
通过检索现有历史记录并与新历史记录连接来更新数组。但这需要额外调用数据库。您可以使用
this._MyModel.findOneAndUpdate(
{ email },
{
$set: {
'tradeAccount': {
limitType,
limit,
}
},
$push: {
'tradeAccount.history': history
}
}
);
这将更新limitType和limit字段,然后进入历史记录。您没有以这种方式对同一字段执行多个查询,因为您没有直接对“tradeAccount”执行任何操作。似乎值得尝试。我已经将历史更新与用户更新分开,因为我认为这种方法非常符合
S
OLID原则。非常感谢。
this._MyModel.findOneAndUpdate(
{ email },
{
$set: {
'tradeAccount'.'limitType': limitType,
'tradeAccount'.'limit': limit
},
$push: {
'tradeAccount.history': history
}
}
);