Обновление массива внутри массива с помощью mongodb - PullRequest
1 голос
/ 15 ноября 2011

У меня большие трудности с чем-то, что, вероятно, является самым основным. У меня есть следующая запись в моей базе данных

{"_id"=>BSON::ObjectId('4ec2429c85aab65f16fa2700'),
     "owner"=>4,
     "friends"=>{"mappings"=>{"Test"=>34}},
     "friendid"=>"309"}

Я пытаюсь вставить другое значение в массив сопоставлений. Что-то вроде «Тестирование» => 10

К сожалению, мне не везет, когда я пробую разные подходы. В настоящее время я пробую ниже, но безуспешно.

BasicDBObject updateQuery = new BasicDBObject();
updateQuery.put("owner", owner);
updateQuery.put("friendid", userid);
BasicDBObject updateCommand = new BasicDBObject();
updateCommand.put("$push",  new BasicDBObject("friends.mappings", 
                                    new BasicDBObject(clustername, clusterid)));
WriteResult result = collection.update(updateQuery, updateCommand,false,true);

Буду признателен, если кто-нибудь скажет мне, что я делаю неправильно. Я предполагаю, что это действительно очевидно!

P.s Я использую последнюю версию драйвера и последнюю версию MongoDB

1 Ответ

0 голосов
/ 15 ноября 2011

Проверьте, является ли ваша база данных 'capped' (то есть создана с помощью capped: 'true')

...