Javascript Nodejs并使用moongose改进搜索
我希望能够在db中更自由地搜索字符串。 例如,我存储名称和lastnam,比如“Joe Doe” 我希望能在这样的字符串中找到他: 乔,乔,多,多伊,乔多,乔多,多伊乔,多伊乔 还有,如果有像Johe doe这样的拼写错误 我使用moongose来处理我的atlas DB(mongoDB) 这就是我现在拥有的:Javascript Nodejs并使用moongose改进搜索,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,我希望能够在db中更自由地搜索字符串。 例如,我存储名称和lastnam,比如“Joe Doe” 我希望能在这样的字符串中找到他: 乔,乔,多,多伊,乔多,乔多,多伊乔,多伊乔 还有,如果有像Johe doe这样的拼写错误 我使用moongose来处理我的atlas DB(mongoDB) 这就是我现在拥有的: const aggregate = [ { $match: { category: { $regex: `${body.category}`, $op
const aggregate = [
{
$match: {
category: { $regex: `${body.category}`, $options: 'i' },
},
}, {
$match: {
name: { $regex: `${body.search}`, $options: 'i' },
},
}
];
connectToDatabase().then(() => {
Names.aggregate(aggregate)
.then((name) =>
callback(null, {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*',
},
body: JSON.stringify(name),
})
)
.catch((err) =>
callback(null, {
statusCode: err.statusCode || 500,
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'text/plain',
},
body: 'Could not find.',
})
);
});
您需要将正则表达式传递给Mongoose模型中的find方法。假设您的模型是
User
,您需要搜索类似于Jo
:
const findUsersLikeJo = async () => {
const users = await User.find({name: /Jo/i})
console.log( findUsersLikeJo() )
}
这是核心思想。把它和你的具体情况联系起来。在这里查看更多示例:请澄清您正在使用的数据库,并发布您已经尝试过的代码。需要更多关于使用代码和更多信息更新架构的详细信息,@Erich