当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《在mongodb中的$where中的两个不同字段的逻辑OR》经验,为你挑选了2个好方法。

你如何进行下面的查询,我想在伦敦或其他名字中有希尔顿的酒店?

此查询db.hotels.find({$ where:"name =/hilton/i || city =/london/i"})

出现这样的错误错误:{"$ err":"$ where compile error"}

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



1> rsmoorthy..:

现在,mongodb支持$或condition,你可以这样做:

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



2> Alexander Az..:

试试这个:

db.hotels.find({
    $where: "/london/i.test(this.city) || /hilton/i.test(this.hotel)"
})

注意 据我所知$where,每个文档的评估都是如此,因此它可能非常慢.如果你有一个属性,我建议像smth一样

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

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有