2011-11-15 2 views
1

J'ai de grandes difficultés avec quelque chose qui est probablement le plus basique. J'ai l'entrée suivante dans ma base de donnéesMise à jour de tableau à l'intérieur d'un tableau en utilisant mongodb

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

J'essaie d'insérer une autre valeur dans le tableau de mappages. Quelque chose comme "Testing" => 10

Malheureusement, je n'ai pas de chance quoi que ce soit en essayant une variété d'approches différentes. Actuellement, j'essaie le ci-dessous sans succès.

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); 

J'apprécierais que quelqu'un puisse me dire ce que je fais mal. Je suppose que c'est quelque chose de vraiment évident!

P.s J'utilise le dernier pilote et le dernier MongoDB

Répondre

0

Vérifiez si votre base de données est « plafonné » (qui est, créé avec plafonnés: « true »)

Questions connexes