2012-09-21 2 views
2

Je cours des mises à jour contre une base de données dans MongoLab (Heroku) et ne peux pas obtenir des informations de getLastError. Par exemple, voici des instructions pour mettre à jour une collection dans une base de données MongoDB exécutant localement sur ma machine (version db version v2.0.3-rc1).Non updatedExisting from getLastError dans MongoLab

ariels-MacBook:mongodb ariel$ mongo 
MongoDB shell version: 2.0.3-rc1 
connecting to: test 
> db.mycoll.insert({'key': '1','data': 'somevalue'}); 
> db.mycoll.find(); 
{ "_id" : ObjectId("505bcc5783cdc9e90ffcddd8"), "key" : "1", "data" : "somevalue" } 
> db.mycoll.update({'key': '1'},{$set: {'data': 'anothervalue'}}); 
> db.runCommand('getlasterror'); 
{ 
    "updatedExisting" : true, 
    "n" : 1, 
    "connectionId" : 4, 
    "err" : null, 
    "ok" : 1 
} 
> 

Tout va bien localement.

Maintenant, je passe à une base de données dans MongoLab et exécuter les mêmes instructions pour mettre à jour un document. getLastError ne retourne pas un champ updatedExisting. Par conséquent, je suis incapable de tester si ma mise à jour a réussi ou non.

ariels-MacBook:mongodb ariel$ mongo ds0000000.mongolab.com:00000/heroku_app00000 -u someuser -p somepassword 
MongoDB shell version: 2.0.3-rc1 
connecting to: ds000000.mongolab.com:00000/heroku_app00000 
> db.mycoll.insert({'key': '1','data': 'somevalue'}); 
> db.mycoll.find(); 
{ "_id" : ObjectId("505bcf9b2421140a6b8490dd"), "key" : "1", "data" : "somevalue" } 
> db.mycoll.update({'key': '1'},{$set: {'data': 'anothervalue'}}); 
> db.runCommand('getlasterror'); 
{ 
    "n" : 0, 
    "lastOp" : NumberLong("5790450143685771265"), 
    "connectionId" : 1097505, 
    "err" : null, 
    "ok" : 1 
} 
> db.mycoll.find(); 
{ "_id" : ObjectId("505bcf9b2421140a6b8490dd"), "data" : "anothervalue", "key" : "1" } 
> 

Est-ce que quelqu'un a rencontré ce problème? Si cela est important, ma ressource sur MongoLab fonctionne avec mongod v2.0.7 (mon shell est 2.0.3). Je ne sais pas exactement ce qui me manque. Je suis impatient d'entendre parler de leur soutien (je vais poster ici quand je l'ai entendu revenir), mais je voulais vérifier avec vous les gens ici aussi bien au cas où. Merci.

Répondre

1

Cela semble être une limitation de ne pas avoir de privilèges d'administrateur pour le processus mongod. Vous pourriez déposer un ticket avec 10gen car cela ne semble pas être une limitation nécessaire. Lorsque j'exécute Mongo en mode authentification sur mon ordinateur portable, je dois m'authentifier en tant qu'utilisateur dans la base de données d'administration pour voir un "n" autre que 0 ou le champ "updatedExisting". Lorsque je m'authentifie en tant qu'utilisateur dans une autre base de données, j'obtiens des résultats similaires à ce que vous voyez dans la production de MongoLab.

(Information complète: Je travaille pour MongoLab En note, je ne vois pas le ticket de support que vous mentionnez dans notre système, nous serons heureux de travailler directement avec vous si vous le souhaitez. nous joindre à [email protected] ou http://support.mongolab.com)

+0

Merci @jared. J'avais l'hypothèse que notre équipe était en mesure de mettre un ticket avant la fin des affaires hier. Fera le suivi à ce sujet. – arieldelafuent3

+0

FYI: c'est un ticket serveur qui suit ce bug: https://jira.mongodb.org/browse/SERVER-7315 –

Questions connexes