在SQL中,存在语法:
SELECT
TemplateID,
Body
FROM
#Template
WHERE
Body LIKE '%[^0-9a-zA-Z ]%'
来自SQL问题here
表达式在其中查找带有Body
的行的行,其中包含无效字符(不是数字或字母)。
在MongoDB查询中是否有类似的简洁方法来查找包含无效(或特殊)字符的字段?
答案 0 :(得分:1)
您可以按以下方式尝试MongoDB $ regsx:
db.collection.aggregate([
{
$match: {
$or: [
{'fieldName': { $regex: "$", $options: 'i' } },
{'fieldName': { $regex: "#", $options: 'i' } },
/* Append you special char here in array */
]
}
}
])
答案 1 :(得分:0)
我发现正则表达式也可以在Mongo中使用:
db.myCollection.
find(
{
"title": {
"$regex": ".*[^0-9a-zA-z |,'-:&%].*"
}
})
或者基于(grep) Regex to match non-ASCII characters?
的更简洁更优雅的正则表达式db.myCollection.find(
{
'title': {'$regex': ".*[^[:ascii:]].*"}
},
{
'title': 1,
'_id': 0
}
).limit(10)