Mongo:使用了$ addToSet而不使用$ each。如何删除数组?

时间:2018-08-16 15:41:14

标签: arrays mongodb mongoose

我有一个像这样的对象:

object: {
    ids: [ ObjectId('1...'), ObjectId('2...')]
}

我想向ids数组中添加一些元素:

[ObjectId('3...'), ObjectId('4...')]]

没有正确地做到这一点:

Object.update({ _id: someId }, 
    { 
      $addToSet: { ids: { $each: [ObjectId('3...'), ObjectId('4...')]]} 
    }
);

我无意间做了一件坏事:

Object.update({ _id: someId }, 
    { 
      $addToSet: { ids: [ObjectId('3...'), ObjectId('4...')]] }
    }
);

现在用一个看起来像这样的对象吸引我

{
  ids: [ ObjectId('1...'), ObjectId('2...'), [ObjectId('3...'), ObjectId('4...')]]
}

显然,这是一个问题。我尝试了一些编程解决方案,例如检查该元素是否为数组(if Array.isArray(elem)),但看起来像猫鼬正在使查询结果变平。

解决此问题的好方法是什么?或者换句话说,如何展平数组?

0 个答案:

没有答案