打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
mongodb like查询

假如需要查找的字符串为s,则可以用db.tables.find({"name":/s/}),或者db.tables.find({"name":/^s/}) ,或者db.tables.find({"name":/s.*/}),或者db.tables.find({"name":/.s.*/})

下面就分析下这几种查询的对应结果有什么不同:

1)db.city.find({"extra_data.region":/.新.*/})

共765条记录:包含了【高新技术。高新区,虎丘。渝北区(含北部新区)】

【注:由结果可以看出所查字符前面必须有字符,相当于:db.city.find({"extra_data.region":/.新./}),也相当于db.city.find({"extra_data.region":/.新/})】
-----------------------------------------------------------------------------------------------------------
2)db.city.find({"extra_data.region":/^新/})

共592条记录:包含了【新华。新洲。新都。新城。新区】

【注:由结果可以看出,此查询必须以所查字符开始】

-----------------------------------------------------------------------------------------------------------
3)db.city.find({"extra_data.region":/新.*/})

共1357条记录:记录包含了【新华。高新技术。渝北区(含北部新区)。高新区,虎丘】

【注:由结果可以看出前面字符可以有也可以没有,相当于:db.city.find({"extra_data.region":/新/})】

-----------------------------------------------------------------------------------------------------------

最后再分析下记录的结果,由上面三种查询可以看出,前两个查询的结果和正好等于最后一种的查询结果,这与注解完全符合。




但是,Mongodb应尽量少用或不用这种Like查询,所有的操作应该集中在_id上,因为mongodb默认仅仅对_id进行了索引。最好将要查询的内容hash之后附给_id。 如果真要有其它条件查询,也一定要建立对应的字段索引。当然,建立的时候还有其它坑,要参见mongodb 巨坑汇总。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
非关系型数据库和关系型数据库区别
Nodejs对MongoDB模糊查询
MongoDB 查询分析 | 菜鸟教程
請問DB2裡面 要如何檢查 Table 是否存在
推荐一款MongoDB的客户端管理工具
MongoDB(四):查询
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服