Как я могу обновить поле идентификаторов?
К сожалению, я не могу использовать позиционные операторы, так как есть ошибка, которая не позволяет более 1 встроенного документа: https://jira.mongodb.org/browse/SERVER-831
Так что это не будет работать (используя драйвер Mongodb Ruby):
stat_profile.update({ profile_id: profile.id, providers: { '$elemMatch' => { provider_name: 'foo', dates: { '$elemMatch' => { date: 20130911, relationships: { '$elemMatch' => { relationship_type: 'friend' } } } } } } },
{ '$set' => { 'providers.$.dates.$.relationships.$.ids' => [1,2,3] } })
Учитывая следующую коллекцию. Отношения встраиваются в даты, даты встраиваются в провайдеров.
Как мне обновить ids
поле?
{
"_id" => BSON::ObjectId('523048983858f61767000008'),
"profile_id" => 3,
"providers" => [
[0] {
"provider_name" => "foo",
"dates" => [
[0] {
"date" => 20130911,
"relationships" => [
[0] {
"relationship_type" => "acquaintance",
"count" => 0
},
[1] {
"relationship_type" => "friend",
"count" => 0,
"males_count" => 0,
"females_count" => 0,
"top_ten_countries" => [],
"ids" => []
}
]
}
]
}
]
}