它可以在mongo搜索中創建一個正則表達式來忽略puntuation嗎?Mongo搜索正則表達式忽略pundinguation
我在收集類似
123.456.789-01
or
33.018.843/09881-20
所以,如果我找了一些123456(我想找到的第一個或多個) ,如果我發現8430(我需要找到第二或更多)
我想忽略puntuation和字符串的時候。
tks
它可以在mongo搜索中創建一個正則表達式來忽略puntuation嗎?Mongo搜索正則表達式忽略pundinguation
我在收集類似
123.456.789-01
or
33.018.843/09881-20
所以,如果我找了一些123456(我想找到的第一個或多個) ,如果我發現8430(我需要找到第二或更多)
我想忽略puntuation和字符串的時候。
tks
是的,你可以。你知道$options
運營商與$regex
?
$options: "x"
將幫助你克服這一點。
嗯,我不知道這是可能的通過正則表達式。然而,有一個變通方法,看看這個:
> db.teste.find()
{
"_id": ObjectId("57f65bc8b9b3f8a0acacc0c1"),
"num": "33.018.843/09]881-20"
}
{
"_id": ObjectId("57f65bcbb9b3f8a0acacc0c2"),
"num": "123.456.789-01"
}
所以:
db.teste.find().map(function(doc) {
var str = doc.num.replace(/[./\-]/g, "");
if (str.indexOf("8430") > -1) return (doc);
}).filter(function(e, i) {
if (e) return e;
});
我不知道你在做什麼,既不是什麼您的需求,但我給出以下總彙
希望它有幫助。
但是「x」只會忽略空格符合文檔:https://docs.mongodb.com/manual/reference/operator/query/regex/ –