Javascript Express和MongoDB,集合中的转义字符有问题。使用$text和$search时查找

Javascript Express和MongoDB,集合中的转义字符有问题。使用$text和$search时查找,javascript,mongodb,express,mongodb-query,Javascript,Mongodb,Express,Mongodb Query,根据MongoDB文档 db.articles.find( { $text: { $search: "\"coffee shop\"" } } ) 需要在collection.find中将其转义字符插入到属于req.query.name的名为query的变量中!所以,这是可以使用的 var query = req.query.name; collection.find({ $text: { $search: '"\"' + quer

根据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\""'

不幸的是,我所期望的不起作用,你有什么解决办法吗?谢谢

一种方法是使用。试试这个:

var query=`“${req.query.name}`;
collection.find({$text:{$search:query}})

var query=''“+req.query.name+'”;
collection.find({$text:{$search:query}})

一种方法是使用。试试这个:

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}})

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

var value = `\\"${query}\\"`;
collection.find({ $text: { $search: value}})
如果您的外部双引号丢失,请尝试以下操作:

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

感谢您的回答,问题是它没有遵循索引,因此查询速度会非常慢。没有任何东西,而是运行,这是一个美丽的!我也尝试过使用正则表达式,但同样地,它只在索引后面加上“^”,所以我找不到字符串的结尾!感谢您的回答,问题是它没有遵循索引,因此查询速度会非常慢。没有任何东西,而是运行,这是一个美丽的!我也尝试过使用正则表达式,但同样地,它只在索引后面加上“^”,所以我找不到字符串的结尾!谢谢你的回复,没什么可做的就是不能按照索引!来自mongo shell的设计完美无瑕!在express中,它失败,从调试返回(如您所建议):
“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>而在shell中一切正常
$search:“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
即使在express中,一切正常,但不幸的是,我不需要搜索“咖啡馆”这个词;)谢谢你的回复,没什么可做的就是不能按照索引!来自mongo shell的设计完美无瑕!在express中,它失败,从调试返回(如您所建议):
“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>而在shell中一切正常
$search:“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
即使在express中,一切正常,但不幸的是,我不需要搜索“咖啡馆”这个词;)