2012-10-26 3 views
2

Je veux utiliser mongodb comme une carte dans Erlang. Je ne peux pas trouver un exemple de ceci. Voilà ce que j'ai jusqu'à présent:Créer et modifier une carte dans MongoDB à Erlang

application:start(mongodb). 
Host = {localhost, 27017}. 
{ok, Conn} = mongo:connect(Host). 

mongo:do(safe, master, Conn, test, fun() -> 
    mongo:delete(foo, {}),     
    mongo:insert(foo, {x,1}), 
    mongo:insert(foo, {a,12}), 
    Pid = mongo:find(foo, {a}),  
    Result = mongo_cursor:rest(Pid),     
    mongo_cursor:close(Pid), 
    Result end). 

Résultat:

{ok,[{'_id',{<<80,138,211,178,41,152,132,104,251,0,0,35>>}, 
      x,1}, 
    {'_id',{<<80,138,211,178,41,152,132,104,251,0,0,36>>}, 
      a,12}]} 

Pourquoi faut-il créer deux cartes?

+0

Une personne a trouvé cette question utile :) – Kev

Répondre

1

Vous faites deux insertions dans MongoDB sans spécifier une valeur _id, fin donc avec deux documents et un autogenerated ObjectId unique. Si vous essayez d'utiliser une collection similaire à map ou dict, vous devez fournir une valeur _id comme clé et utiliser repsert (aka upsert) pour mettre à jour le document s'il existe déjà (ou l'insérer s'il ne l'est pas).

1

mongo est la carte pas est la liste des cartes-t-il pas possible de modifier la carte se

Questions connexes