【问题标题】:Search for a phrase using mongoose, express使用猫鼬搜索短语,表达
【发布时间】:2020-04-11 08:13:46
【问题描述】:

按照 mongodb here 的文档,我正在尝试使用 mongoose 搜索某些东西,同时使用 express 的搜索查询,我的代码是这样的

collection_name.find{$text: { $search: req.query.search} }

但这会从数据库返回错误的数据集(因为它没有将查询作为短语)

我正在尝试这个

db.articles.find( { $text: { $search: "\"coffee shop\"" } } )

(这是文档中的示例,它给出了我想要的结果)

进入这个:

collection_name.find( { $text: { $search: "\"req.query.search\"" } } )

但将 req.query.search 作为变量而不是字符串。

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    我认为您需要使用反引号字符来构造这样的搜索词:

    db.articles.find( { $text: { $search: `"${req.query.search}"` } } )
    

    【讨论】:

    • @LeoPolanco 现在可以使用了,请查看更新后的答案。
    • @JohnnyHK 我猜你的意思是在更新的答案中,对吧?
    • 你不应该需要 \\
    • @JohnnyHK 是的,这也有效,而且更干净,我会更新答案,谢谢。
    • @LeoPolanco JohnnyHK 建议使用更简洁的语法,更好地使用它。请检查更新的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2021-10-05
    • 2017-01-14
    • 2021-06-04
    相关资源
    最近更新 更多