我在使用filtered positional operator增加数据库中的字段时遇到问题。这是我在数据库中的结构:
Schema:
...
funds: [{
currency: String,
balance: {
avaible: Number,
frozen: Number
}
}],
...
My query:
User.findByIdAndUpdate(userId,{
$inc: {"funds.$[e].avaible": funds},
$addToSet: {
funds: {
currency: "BTC",
balance: {avaible: funds, frozen: 0}
}
}
}, { multi: true, arrayFilters: [{$eq: {currency: "BTC"}}]}).exec((err, row) => {
if (err) {
return console.log('error', err);
}
return console.log(row);
});
resolve(data)
})
.catch((e) => reject(e))
我想要的只是增加资金而货币是'BTC',如果该对象不存在则创建对象。
我的失败在哪里?