mongodb正则查询使用须知
2012-07-05 23:54
239 查看
假定需要查询name中包含s的:db.customer.find({'name': /.*s.*/i})
pymongo的写法如下:
rexExp = re.compile('.*s.*', re.IGNORECASE)db.customer.find({'name':rexExp })或者
db.customer.find({'name': {'$regex':'.*s.*'} })
为提高查询效率,添加索引{'name':1}
测试结果:无法命中索引
要想命中索引,还得改下查询条件,查询必须符合2点
必须是s开头的,而不能是s在中间
必须是大小写敏感的
那么,查询看起来应该是这个样子:
db.customer.find({'name': /^s.*/})
pymongo的写法如下:
rexExp = re.compile('^s.*') db.customer.find({'name':rexExp })
omg,看来单靠mongodb是很难满足实际的应用场景,所以还是另外考虑其它搜索引擎做为全文索引的补充吧,lucene系列(solr,elasticSearch)或sphinx都可以考虑下
pymongo的写法如下:
rexExp = re.compile('.*s.*', re.IGNORECASE)db.customer.find({'name':rexExp })或者
db.customer.find({'name': {'$regex':'.*s.*'} })
为提高查询效率,添加索引{'name':1}
测试结果:无法命中索引
要想命中索引,还得改下查询条件,查询必须符合2点
必须是s开头的,而不能是s在中间
必须是大小写敏感的
那么,查询看起来应该是这个样子:
db.customer.find({'name': /^s.*/})
pymongo的写法如下:
rexExp = re.compile('^s.*') db.customer.find({'name':rexExp })
omg,看来单靠mongodb是很难满足实际的应用场景,所以还是另外考虑其它搜索引擎做为全文索引的补充吧,lucene系列(solr,elasticSearch)或sphinx都可以考虑下
相关文章推荐
- 使用ArcGIS Engine来实现地图的点击查询并闪烁
- 关于一个MYSQL语法(在查询中使用count)的兼容性问题
- UE/US正则表达式查找搜索替换,查询的字符串未找到(UE studio/ultraEdit)/修改UE使用Perl正则引擎
- elasticsearch基本操作之--使用QueryBuilders进行查询
- 复杂查询中 union的使用
- 使用 CSS 媒体查询创建响应式网站 适用于所有屏幕大小的设计
- 有效的使用和设计COM智能指针——条款11:以类型安全的方式创建资源和查询接口
- Oracle查询表空间使用大小,使用率,剩余大小,百分比
- [深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询
- 【Mysql】禁止在项目中使用跨库联表查询
- C#基础之LINQ查询语句的简单使用(一)
- struts中使用form保持查询条件不变
- windows下WMI使用C++查询用户硬件信息
- 使用查询语法而不是循环
- Mysql多个LEFT JOIN使用ORDER不能使用索引导致查询过慢的解决方案
- 使用dig查询dns解析
- Node使用mongoose查询一直为空的原因
- 深入浅出SharePoint—使用SPSiteDataQuery 查询多个List中的数据
- mysql联接和子查询的使用