meteor mongo更新拼接数组

时间:2018-03-16 13:08:08

标签: arrays mongodb meteor modifier

我正在研究一个基于原始对象和更改对象生成mongodb修改器对象的函数。
目标是尽可能仔细地更新文档。 (仅将更改添加到修改器中)

更改的对象(可能是嵌套的)工作得很好。但我遇到阵列问题:

如果我使用数组[1,2,3,4]并运行arr.splice(1,1),则数组如下所示:[1,3,4]。这是正确的。

问题如下:
当我将[1,2,3,4][1,3,4]进行比较时,我的函数会更改索引1和2,然后删除第3个索引,因为它不再需要了。
生成的修饰符如下所示:

//document in collection
{
  arr: [1,2,3,4]
}

//generated modifier
{
  $set: {
    'arr.1': 3,
    'arr.2': 4
  },
  $push: {
    $slice: 3
  }
}

这会产生以下错误:
MongoError: Cannot update 'arr.1' and 'arr' at the same time

您是否有任何建议如何删除一个查询中的最后一个索引? 或者我使用多个更新来存档吗?

0 个答案:

没有答案