2012-10-22 58 views
2

條非數字字符我有其中已被使用的隨機各種分隔符的電話號碼,例如一個字段:MongoDB的 - 在字段

932-555-1515 951.555.1255 (952)555- 1414

我想通過已存在的每個字段並刪除非數字字符。那可能嗎?無論它是否以整數或字符串形式存儲,我都不在乎。它只會用於顯示目的。

謝謝

回答

13

你必須在您的所有文檔重複代碼,並使用正則表達式替換清理字符串。

下面是在mongo外殼中如何處理test集合,其中phone字段需要清理。

db.test.find().forEach(function(doc) { 
    doc.phone = doc.phone.replace(/[^0-9]/g, ''); 
    db.test.save(doc); 
}); 
0

基於前一個例子由@JohnnyHK上,我增加了正則表達式也給查找查詢:

/* 
MongoDB: Find by regular expression and run regex replace on results 
*/ 
db.test.find({"url": { $regex: 'http:\/\/' }}).forEach(function(doc) { 
    doc.url = doc.url.replace(/http:\/\/www\.url\.com/g, 'http://another.url.com'); 
    db.test.save(doc); 
});