Arrays Mongo:使用$addToSet,但不使用$each。如何删除阵列?

Arrays Mongo:使用$addToSet,但不使用$each。如何删除阵列?,arrays,mongodb,mongoose,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: {
    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))
,但看起来mongoose正在压平查询结果


什么是扭转这个问题的好方法?或者换句话说,如何展平阵列?

您能解释一下您到底想要什么吗?使用$pull。类似于
db.colname.update({},{$pull:{ids:{$type:{$type:“array”}}}}}})
Updated question您必须删除这些值,然后再次插入带有$each的值。这就是你要找的吗?删除数组值的最后一条注释。我尝试了一下,发现虽然它会说“更新的x记录”,但实际上它并没有