我如何在猫鼬上使用“LIKE”运算符?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在猫鼬上使用“LIKE”运算符?相关的知识,希望对你有一定的参考价值。

当我使用mongoose进行查询时,我遇到了问题。编码遵循此Mongoose.js: Find user by username LIKE value。但它返回空白。

我的代码返回空白。

 var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5);

我试过这个回归空白似乎。

var n = john; var promise = UserSchema.find({name: /n/ }).limit(5);

但我试过这是有效的

 var promise = UserSchema.find({name: /john/ }).limit(5);

为什么我使用变量然后返回空白?

答案

在mongodb中使用$regex

how to use regex

select * from table where abc like %v%

在蒙戈

 var colName="v";
 models.customer.find({ "abc": { $regex: '.*' + colName + '.*' } },
   function(err,data){
         console.log('data',data);
  });

你的查询看起来像

var name="john";
UserSchema.find({name: { $regex: '.*' + name + '.*' } }).limit(5);
另一答案

您可以使用RegExp对象生成带有变量的正则表达式,如果希望搜索不区分大小写,请添加“i”标志。

const mongoose = require('mongoose');
const User = mongoose.model('user');

const userRegex = new RegExp(userNameVariable, 'i')
return User.find({name: userRegex})
另一答案

或者只是简单

const name = "John"
UserSchema.find({name: {$regex: name, $options: 'i'}}).limit(5);

我不区分大小写

以上是关于我如何在猫鼬上使用“LIKE”运算符?的主要内容,如果未能解决你的问题,请参考以下文章

在猫鼬上自定义 json 输出

如何在猫鼬上使用变量

数据未发布在带有快递和翡翠的猫鼬上

如何在猫鼬中使用聚合

如何在猫鼬中捕获错误代码

如何使用聚合在猫鼬中对文档数组进行分页?