猫鼬在数组映射内进行部分交易

时间:2020-04-01 06:15:08

标签: node.js mongodb mongoose

有没有一种方法可以在不知道第二个元素的先前值的情况下更新数组中一个对象的值?

user.set(`history.${day}`, [{ morning: price }]);

我只想更新早晨价格,而无需特别知道下午的价值。

以上行之前的文档图片: beforeafter

您可以看到后面的图片,将价格从50更新为100后,第3个数组中的第二个对象被删除了,是否仍然可以进行部分交易?

模型架构:

const subSchema = mongoose.Schema({
  morning: Number, afternoon: Number
},{_id: false});

const UserSchema = mongoose.Schema(
  {
    username: String,
    price: Number,
    history: { type: Map, of: [subSchema] }
  }
);

谢谢

1 个答案:

答案 0 :(得分:0)

如果要保持架构不变,则需要为set提供要更改的值的完整路径:

digits

这需要某种方式来找到要修改的索引。