2012-05-30 73 views
-1

1,如何通過python獲得我在monogd中的操作的返回值?我知道getLastError可以在JavaScript中使用。如何在pymongo中使用getLastError?

2,是否有設置修飾符的限制? 如果我使用
collection.update({ 「通知」: 「是」},{ 「$集」: {「IDX」:IDX, 「src_md5」:src_md5, 「src_size」:src_size,「src_time 「:int(src_time)},」$ addToSet「:
{」server_list「:host_name}})

它沒有工作。
但是當我使用
collection.update({ 「通知」: 「是」},{ 「$集」:
{ 「IDX」:IDX, 「src_md5」:src_md5, 「src_size」: src_size}, 「$集」:
{ 「src_time」:INT(src_time)}, 「$ addToSet」:{ 「server_list」:HOST_NAME}})
它的工作。
爲什麼?

+0

這顯然是一個RTFM提問和pymongo API文檔明確回答 - downvote –

回答

1

1)您可以使用write關鍵字參數來確保調用​​。

  • 安全:各種方法如下所述使用GetLastError每個寫入操作?
  • j日誌:阻止直到寫操作被提交給日誌。如果服務器沒有日誌記錄運行,則忽略。 意味着安全=真。
  • w :(整數或字符串)如果這是一個副本集,寫操作將不會返回,直到它們被複制到指定數字 或標記的服務器組爲止。意味着安全=真。

您可以將這些寫在不同層次的擔憂取決於你的需求:


2)你的查詢看起來很好繼承人測試:

 

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

這爲我工作

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