1. 程式人生 > >nodejs更新MongoDB資料庫中文問題

nodejs更新MongoDB資料庫中文問題

最近,在用nodejs更新mongodb資料庫時遇到了這樣一個問題——在update方法中,如果我們以下面這種方式編寫程式碼,則不會出現錯誤
這裡寫圖片描述
這裡,引數x是一個http.ServerResponse物件,用於向客戶端返回資訊。y則是客戶端通過post方法傳到伺服器的json檔案,裡面有若干個欄位,其中updata欄位用於表明這個post請求要修改資料庫內容,欄位oldnum的值是需要修改的學生學號。因為後面我想直接把y做為用來指定更新文件的物件,所以在更新之前,需要將updata與oldnum欄位刪除。就如之前所說,這樣子是不會報錯的。
但如果我們把oldnum欄位的值換成中文,比如說我們想通過名字, 查詢對應的資料,其他部分程式碼不變,則執行時會丟擲一個錯誤,這個錯誤產生的原因是因為在collection.update({number:oldnum},y,function(err,result){}中,如果變數oldnum的值為中文,則直接找不到資料,如果改為collection.update({number:“老王”},y,function(err,result){}且資料庫中有人叫老王,則會找到這條資料。而且find方法也有這個問題,具體的原因我還在調查。雖然在實際操作中,我們不太可能根據人名來查詢資料,但這個問題還是值得注意。