2011-09-26 43 views
2

我想手動修復包含Unicode替換字符(看起來像一個問號,看http://www.fileformat.info/info/unicode/char/fffd/index.htm)在我的Mongo數據庫中的一些文件。我已經解決了爲什麼這些角色在那裏結束的問題,但也希望保留舊數據。所以我只想要一個簡單的查詢,它返回包含這個字符的所有文檔。MongoDB正則表達式查詢找到Unicode替換字符

我想出迄今

db.songs.find({artist: /\ufffd/}); 

找到所有歌曲包含替換字符的藝術家的名字。到目前爲止沒有運氣。

+0

這是由於這樣的事實,這是一個當您無法正確查看角色時的表示。 Mongo正確處理UTF-8,所以這不太可能是您的數據,這是您的看法。 –

+0

是的,我知道,這是我的數據,因爲我有一些編碼錯誤,最終在這些替換字符中的一些。這就是爲什麼我想瀏覽數據並用正確的字符手動替換這些數據。爲此,我想查看我需要編輯的所有條目。 – slurmomatic

回答

5

似乎它不喜歡在正則表達式中使用\uXXXX。嘗試:

db.songs.find({artist: new RegExp("\ufffd")}); 
+0

我不得不在Mac上使用'''而不是''',但是,這工作! – slurmomatic

1

要碰到一個古老的線程:對正則表達式d需要轉義反斜線否則會逃跑的U代替:

db.songs.find({artist: /\\ufffd/});