繁体   English   中英

Express 和 MongoDB,使用 $text 和 $search 时 collection.find 中出现转义字符的问题

[英]Express and MongoDB, problem with escape characters in the collection.find while using $text and $search

从 MongoDB 文档开始,

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

需要将其在 collection.find 中的转义字符插入到属于 req.query.name 的名为 query 的变量中,因此可以使用该文本索引

var query = req.query.name;

collection.find({ $text: { $search: '"\"' + query + '\""'}})

我也试过

'"\"query\""'

不幸的是,我的预期不起作用,您有什么解决方案吗? 谢谢

一种方法是使用ES6 模板文字 尝试这个:

var query = `"${req.query.name}"`;

collection.find({ $text: { $search: query}})

或者

var query = '"' + req.query.name + '"';

collection.find({ $text: { $search: query}})

试试这个,这将有助于进行与 Mongodb 文档中提到的相同的查询。 它也将使用您的索引。

var value = `\\"${query}\\"`;
collection.find({ $text: { $search: value}})

如果有任何机会,您的外部双引号丢失,那么试试这个:

var value = `"\\"${query}\\""`
collection.find({ $text: { $search: value}})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM