Mongodb 在多个索引处使用嵌套数组更新Mongoose文档

Mongodb 在多个索引处使用嵌套数组更新Mongoose文档,mongodb,mongoose,database,Mongodb,Mongoose,Database,我很难用嵌套数组更新模式,使其在数组的多行中有一个objectID。如果可以的话,请帮忙 我的模式如下所示: var ProblemSchema = new Schema({ data : "etc..." array1 : [{ _id : { type: 'String' }, array2: [{ type: Schema.Types.ObjectId}] }]} 我可以使用update对象中的$operator轻松地将

我很难用嵌套数组更新模式,使其在数组的多行中有一个objectID。如果可以的话,请帮忙

我的模式如下所示:

var ProblemSchema = new Schema({
      data : "etc..."
      array1 : [{
        _id : { type: 'String' },
        array2: [{ type: Schema.Types.ObjectId}]
      }]}
我可以使用update对象中的$operator轻松地将objectId添加到单个嵌套数组中,如下所示:

var query = {array1._id : ID};
var update = {$push : {'array1.$.array2' : objectId}};
Problem.update(query, update) 
但是,我希望能够在一个查询中将同一objectId添加到多个Array2(即对应于不同的array1 ID),但是$operator只匹配查询的第一个匹配项,因此我无法按照上面所述的方式进行操作


我还试图避免在服务器上使用for循环(我意识到我可以找到()正确的文档,然后使用for循环,在该循环中,我手动将objectID推送到正确的array2s,但该解决方案涉及大量开销),有人能想到解决方案吗?

从MongoDB 2.6开始,没有办法通过单个更新查询来实现这一点。是数组中第一个匹配元素的占位符。有一个MongoDB特性请求更新数组的所有匹配元素,您可以同时跟踪这些元素