【问题标题】:"Searching" a string on a MongoDB DB with MongoMapper使用 MongoMapper 在 MongoDB 数据库中“搜索”字符串
【发布时间】:2011-12-21 18:41:26
【问题描述】:

我正在制作一个使用 MongoMapper 和 Sinatra 的 web 应用程序。我想知道如何针对数据库的集合实现搜索功能。我虽然有类似 SQL 的东西:

SELECT * FROM posts WHERE match(title) against ("String to search");

如何使用 MongoMapper 实现这一点?谢谢!

【问题讨论】:

    标签: sql search mongodb sinatra mongomapper


    【解决方案1】:

    好的,这来自我的项目并且确实有效:

    Post.where(:title => Regexp.new(/^string/i))   # Limit output with: .limit(10)
    

    也许是正则表达式?

    【讨论】:

    • 很高兴我能帮上忙。这是文档缺少的小东西:)
    【解决方案2】:

    您查询匹配区分大小写的根正则表达式的文档:

    Post.where(:title => /^stringtosearch/).first
    

    MongoDB 不支持全文搜索,所以这是目前您能做的最好的。

    【讨论】:

    • 我收到了#<Plucky::Query:0x007fc33c4d4c50>。从我所看到的(几乎是初学者)来看,我从未在这些方面取得过成功。你能给我一些方向吗?也用empty? 测试它返回true
    • Post.where(:title => "stringtosearch") 也可以工作,并且只匹配这个字符串。
    • @three 我不需要那个,我需要匹配所有包含该字符串的结果
    • @TylerBrock 你必须告诉 plucky 你正在使用正则表达式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2010-10-13
    • 2021-04-25
    • 2013-07-13
    • 2014-07-28
    • 1970-01-01
    相关资源
    最近更新 更多