2013-07-20 44 views
14

設置我有這樣的記錄:

{ 
    "Date" : ISODate("2013-06-28T18:30:00Z"), 
    "Details" : { 
      "Amount1" : -200, 
      "Amount2" : 2800, 
      "Amount3" : -100 
    }, 
    'NID' : 'T123RT', 
    'PID' : 'P123RT', 
    "SettAmount" : 2500, 
    "SettStatus" : "completed", 
    "Status" : "completed", 
    "StoreID" : "51ea54279d867b040b000008", 
    "_id" : ObjectId("51ea54279d867b040b000013") 
} 

我試圖更新,如文獻:

db.settlements.update({ 
    'StoreID' : "51ea54279d867b040b000008", 
    'Date' : ISODate("2013-06-28T18:30:00Z") 
}, { 
    $unset : { 
     'NID' : "", 
     'PID' : "" 
    } 
    }, { 
    $set : { 
     'SettStatus' : 'start', 
     'Status' : 'pending' 
    } 
}); 

但是,僅取消設置操作成功的。上述查詢中有什麼錯誤........?

+1

括號過多? $集合被移出第二個參數來更新成它自己的第三個(它做了別的什麼也沒有)。 – Thilo

回答

28

你有太多的括號, 這裏是正確的命令:

db.settlements.update(
    { 
     'StoreID': "51ea54279d867b040b000008", 
     'Date': ISODate("2013-06-28T18:30:00Z") 
    }, 
    { 
     $unset: { 
      'NID' : "", 
      'PID' : "" 
     }, 
     $set: { 
      'SettStatus': 'start', 
      'Status': 'pending' 
     } 
    } 
); 
在命令

,你使用$在更新命令設置爲<options>,還不如<update>

http://docs.mongodb.org/manual/core/update/#crud-update-update

部分
+0

是啊,謝謝你的快速回應..... – user550881

相關問題