我有两个字段 - 我的mongo集合中的firstname和lastname,我试图从一个'name'文本框中搜索'$或'。搜索结果如下:
{
"$or": [
{
"firstname": {
"$regex": ".*Za"
},
"lastname": {
"$regex": ".*Za"
}
}
]
}
如果我仅使用firstname或lastname值(即注释掉firstname或lastname对象),则搜索按预期工作。
但是,这只是匹配名称,其中firstname和lastname都包含正则表达式匹配。
为什么会这样?
答案 0 :(得分:1)
看起来你在第一个/最后一个名字字段周围有额外的花括号。现在写的方式,你的$或子句是:
(($ regex AND $ regex)OR null)。
试试这个:
{
"$or": [
{
"firstname": {
"$regex": ".*Za"
}
},
{
"lastname": {
"$regex": ".*Za"
}
}
]
}