我正在使用数据库MongoDB进行golang项目。我有一个具有以下记录的收藏集:
[
{
"_id": 1,
"vals": [
"110",
"2211"
]
},
{
"_id": 1,
"vals": [
"Abcd",
"102"
]
}
]
我想执行搜索,就像我通过“ 11001”一样,那么将返回第一条记录。但是我还没有找到任何解决办法来做到这一点。我已经尝试过以下查询:
db.getCollection('ColName').find({"vals":{"$regex": "^11001", "$options": "i"}})
保存在db中的字符少于我在搜索中传递的字符。如果我输入“ 110”或“ 11”,它将给出结果,但是我的要求不同,我有完整的字符串,需要与2、3或4个字符匹配。
答案 0 :(得分:0)
关于正则表达式。
db.getCollection('ColName').find({"vals":{"$regex": "^110(01)?", "$options": "i"}})
将为您服务。 “?”在正则表达式中表示匹配0或1。