1

尝试更新文档结构中的 ids 字段时遇到问题:

[
    [0] {
                   "rank" => nil,
             "profile_id" => 3,
        "daily_providers" => [
            [0] {
                "relationships" => [
                  [0] {
                      "relationship_type" => "friend",
                                  "count" => 0
                  },
                  [1] {
                      "relationship_type" => "acquaintance",
                                    "ids" => [],
                                  "count" => 0
                  }
                ],
                "countries" => [
                   [0] {
                         "country_name" => "United States",
                         "count" => 0
                       },

                   [1] {
                         "country_name" => "Great Britain",
                         "count" => 0
                       }
                ],
                "provider_name" => "foo",
                 "date" => 20130912
            },
            [1] {
                "provider_name" => "bar"
            }
        ]
    }
]
4

1 回答 1

1

在 JavaScript 中,你可以做

r.db('test').table('test').get(3).update(function(doc) {
  return {daily_providers: doc("daily_providers").changeAt(
    0,
    doc("daily_providers").nth(0).merge({
      relationships: doc("daily_providers").nth(0)("relationships").changeAt(
        1,
        doc("daily_providers").nth(0)("relationships").nth(1).merge({
          ids: [1]
        })
      )
    })
  )}
})

变成Ruby

r.db('test').table('test').get(3).update{ |doc|
  {"daily_providers" => doc["daily_providers"].changeAt(
    0,
    doc["daily_providers"][0].merge({
      "relationships" => doc["daily_providers"][0]["relationships"].changeAt(
        1,
        doc["daily_providers"][0]["relationships"][1].merge({
          ids => [1]
        })
      )
    })
  )}
}

您可能应该为日常提供者提供另一个表并进行连接。这会让事情变得更简单。

于 2013-09-12T20:27:17.133 回答