Node.js “我如何使用”;例如;猫鼬号接线员?
我在使用mongoose进行查询时遇到了一个问题。我遵循以下步骤进行编码。但它返回空白Node.js “我如何使用”;例如;猫鼬号接线员?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我在使用mongoose进行查询时遇到了一个问题。我遵循以下步骤进行编码。但它返回空白 var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5); 这是我的代码返回空白 var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5); 我试过这个退货 var n=john;var promise=UserSchema.find({n
var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5);
这是我的代码返回空白
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
范例
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);
i对于不区分大小写的我就是这样做的,以查找名称/电子邮件中是否存在搜索字符串。
希望它能帮助别人
const getPeerSuggestions=async(请求、恢复、下一步)=>{
const{search}=req.query;
const rgx=(pattern)=>newregexp(`.*${pattern}.*`);
const searchRgx=rgx(搜索);
const peers=wait User.find({
$or:[
{name:{$regex:searchRgx$options:“i”},
{电子邮件:{$regex:searchRgx$options:“i”},
],
})
.限额(5)
.接住(下一个);
res.json(对等体);
};
没有aggregate
它对我不起作用。但这确实:
db.dbname.aggregate([{ "$match" : {"name" : { $regex: '.*SERGE.*', $options: 'i' } }}, { $sort: { "createdTime" : -1 }} ]).pretty()
/../语法仅适用于字符串,不适用于变量。您链接的问题中的许多答案都提供了您的答案。谢谢您的回答。以上发现区分大小写。我如何使用不区分大小写的方法来实现这一点?您阅读过文档吗?您需要在选项i
中使用{:{$regex:'pattern',$options:'}}
,例如,{name:{$regex:req.params.keyword,$options:'i'}
i
用于区分大小写