Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb中$where查询中两个不同字段的逻辑OR_Mongodb - Fatal编程技术网

mongodb中$where查询中两个不同字段的逻辑OR

mongodb中$where查询中两个不同字段的逻辑OR,mongodb,Mongodb,你怎么做一个像下面这样的查询,我想在伦敦的酒店或酒店有希尔顿在他们的名字 这个问题 db.hotels.find({$where:“name=/hilton/i | | city=/london/i”}) 给出了这样一个错误 错误:{“$err”:“$where编译错误”} 两个查询分别工作正常: db.hotels.find({$where:“city=/london/i”}) db.hotels.find({$where:“name=/hilton/i”})试试这个: db.hotels.f

你怎么做一个像下面这样的查询,我想在伦敦的酒店或酒店有希尔顿在他们的名字

这个问题 db.hotels.find({$where:“name=/hilton/i | | city=/london/i”})

给出了这样一个错误 错误:{“$err”:“$where编译错误”}

两个查询分别工作正常: db.hotels.find({$where:“city=/london/i”}) db.hotels.find({$where:“name=/hilton/i”})

试试这个:

db.hotels.find({
    $where: "/london/i.test(this.city) || /hilton/i.test(this.hotel)"
})
注意 据我所知,
$其中
对每个文档进行评估,因此速度可能非常慢。如果你有一个单一属性,我建议你

db.hotels.find({name: /(hilton|london)/i})

现在,mongodb支持$or条件,您可以这样做:

db.hotels.find( { $or: [ { name: /hilton/i }, 
                         { city: /london/i } 
                       ] 
              } );

但我在寻找两个不同的字段:(否则第二个查询现在就完美了:)谢谢。。。是的,你的表演也是对的。。。执行两个单独的查询要比执行一个合并的查询快得多,这相当慢