條非數字字符我有其中已被使用的隨機各種分隔符的電話號碼,例如一個字段:MongoDB的 - 在字段
932-555-1515 951.555.1255 (952)555- 1414
我想通過已存在的每個字段並刪除非數字字符。那可能嗎?無論它是否以整數或字符串形式存儲,我都不在乎。它只會用於顯示目的。
謝謝
條非數字字符我有其中已被使用的隨機各種分隔符的電話號碼,例如一個字段:MongoDB的 - 在字段
932-555-1515 951.555.1255 (952)555- 1414
我想通過已存在的每個字段並刪除非數字字符。那可能嗎?無論它是否以整數或字符串形式存儲,我都不在乎。它只會用於顯示目的。
謝謝
你必須在您的所有文檔重複代碼,並使用正則表達式替換清理字符串。
下面是在mongo外殼中如何處理test
集合,其中phone
字段需要清理。
db.test.find().forEach(function(doc) {
doc.phone = doc.phone.replace(/[^0-9]/g, '');
db.test.save(doc);
});
基於前一個例子由@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);
});