【问题标题】:updating Mongoose documents with nested arrays at multiple indexes在多个索引处使用嵌套数组更新 Mongoose 文档
【发布时间】:2014-09-07 08:31:29
【问题描述】:

我在使用嵌套数组更新架构以在数组的多行中拥有一个 objectID 时遇到问题。可以的话请帮忙!

我的架构如下所示:

var ProblemSchema = new Schema({
      data : "etc..."
      array1 : [{
        _id : { type: 'String' },
        array2: [{ type: Schema.Types.ObjectId}]
      }]}

我可以使用更新对象中的 $ 运算符轻松地将 objectId 添加到单个嵌套数组中,如下所示:

var query = {array1._id : ID};
var update = {$push : {'array1.$.array2' : objectId}};
Problem.update(query, update) 

但是,我希望能够在一个查询中将相同的 objectId 添加到 MULTIPLE array2s(即对应于不同的 array1 id),但是 $ 运算符只匹配查询的第一个匹配项,所以我不能这样做它是上面概述的方式。

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

【问题讨论】:

    标签: mongodb mongoose database


    【解决方案1】:

    从 MongoDB 2.6 开始,无法使用单个更新查询来完成此操作。 $ positional operator 是数组中第一个匹配元素的占位符。有一个 MongoDB 功能请求,用于更新数组的所有匹配元素 SERVER-1243,您可以同时跟踪该请求。

    【讨论】:

      猜你喜欢
      • 2016-10-06
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 2016-05-03
      • 2021-03-26
      相关资源
      最近更新 更多