2012-05-30 3 views
-1

1, Comment puis-je obtenir la valeur de retour de mes opérations dans monogd, par python? Je sais que getLastError peut être utilisé en javascript.comment utiliser getLastError dans pymongo?

2, y a-t-il une limite pour régler le modificateur? si j'utilise
collection.update ({ "notification": "oui"}, { "$ set": {"IDX": IDX, "src_md5": src_md5, "src_size": src_size, "src_time ": int (src_time)}," $ addToSet ":
{" liste_serveur ": nom_hôte}})

cela n'a pas fonctionné.
mais quand j'utilise
collection.update ({ "notification": "oui"}, { "$ set":
{ "IDX": IDX, "src_md5": src_md5, "src_size": src_size}, "$ set":
{ "src_time": int (src_time)}, "$ addToSet": { "server_list": nom_hôte}})
cela a fonctionné.
pourquoi?

+0

c'est clairement une question RTFM et a clairement répondu par la documentation api pymongo - downvote –

Répondre

1

1) Vous pouvez utiliser des arguments de mots-clés d'écriture pour vous assurer que getLastError est appelée. Les différentes méthodes sont décrites ci-dessous:

  • sécurité: utilisation GetLastError pour chaque opération d'écriture?
  • j ou journal: bloc jusqu'à ce que des opérations d'écriture aient été validées dans le journal. Ignoré si le serveur est en cours d'exécution sans journalisation. Implique safe = True.
  • w: (entier ou chaîne de caractères) S'il s'agit d'un jeu de réplicas, les opérations d'écriture ne seront pas renvoyées tant qu'elles n'auront pas été répliquées vers le numéro spécifié ou un ensemble de serveurs balisés. Implique sûr = vrai.

Vous pouvez définir ces écrire des préoccupations à différents niveaux en fonction de vos besoins:


2) Votre requête semble bien Heres un test:

 

db.test2.save({notification: 'yes'}) 
db.test2.update({"notification": "yes"}, { 
    "$set": {"idx": 'a', "src_md5": 'b', "src_size": 'c', "src_time": 1}, 
    "$addToSet": {"server_list": 'stackoverflow'} 
}) 
db.test2.find() 


{ 
    "_id" : ObjectId("4fc5decf0631996582479878"), 
    "idx" : "a", 
    "notification" : "yes", 
    "server_list" : [ 
     "stackoverflow" 
    ], 
    "src_md5" : "b", 
    "src_size" : "c", 
    "src_time" : 1 
} 
 
3

Cela a fonctionné pour moi

last_error = db.runCommand({"getLastError":1}) 
Questions connexes