MongoDB正则表达式:包含字符串中的电子邮件

时间:2011-05-06 17:11:50

标签: regex ruby-on-rails-3 mongodb

鉴于我有一个字符串,如

"Donald Trump <donald@trump.com>" 
"Art Job <art@job.com>"

如何在Rails中使用MongoDB查找包含“donald@trump.com”的每一行?

由于

2 个答案:

答案 0 :(得分:0)

您只能使用正则表达式执行此类搜索:

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions

在您的情况下,除非您对数据进行非规范化并将电子邮件地址存储在文档的专用属性中,否则您将无法以有效的方式进行搜索。

不知道Ruby,但每个驱动程序都应该支持正则表达式。

答案 1 :(得分:0)

来自the documentation

search_string = params['search']

# Constructor syntax coll.find({"name" => Regexp.new(search_string)})

# Literal syntax coll.find({"name" => /#{search_string}/})

请注意......您不能对此查询使用索引,因为您的正则表达式未锚定到字符串的前面。