令人困惑的是,字符串字段中的数字可以以前导零开头,但我的查询参数将不包含该数字
对象1:
{
"_id" : ObjectId("5c3f6aec29c2e3193315b485"),
"flightCode" : "000541300157840"
}
对象2:
{
"_id" : ObjectId("5c3f6aec29c2e3193315b485"),
"flightCode" : "00054130015784"
}
如果我要查找与编号54130015784相匹配的航班代码,该如何写查询?
答案 0 :(得分:2)
您需要使用以下正则表达式的$regex运算符:
var code = "541300157840";
var regex = "^0*" + code + "$"
db.col.find({ flightCode: { $regex: new RegExp(regex) } })
其中*
表示0
出现零次或多次,这意味着它同时适用于000541300157840
和541300157840
答案 1 :(得分:0)
如果您认为您的数据将包含文本代码,以便可以识别字符串,则可以使用此代码。
正则表达式:
54130015784(?="\n)
说明:
Positive Lookahead (?="\n)
Assert that the Regex below matches
" matches the character " literally (case sensitive)
\n matches a line-feed (newline) character (ASCII 10)
示例:
https://regex101.com/r/sF0YfH/3
让我知道它是否有效。如果不清楚,您想要什么。