gpt4 book ai didi

node.js - MongoDB 搜索用户 : filter based on name with regex

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:24 24 4
gpt4 key购买 nike

因此,我想向我的 Web 应用程序添加一个搜索栏,并且希望在我的输入元素中输入名称时显示用户。

我通过创建 mongodb 查询来过滤后端的名称,并在 $regex 中输入用户在前端的输入元素(搜索栏)中输入的字符串。我认为它工作得很好,但现在我的老板说,当他输入他们的名字时,许多用户根本没有出现。我经历了整个过程,它与我在 MongoDb 查询中输入的正则表达式有关。

例如,当我在搜索栏中输入“jonas”时,我希望这会返回带有 full_name 的用户文档。特性值(value)Jonas Rodrigo 。我是否错误地认为我可以像下面那样简单地输入输入元素字符串?如果是这样,我该如何改进?

这就是它的样子:当我输入乔纳斯这个名字时,我希望该用户显示,但不幸的是他没有出现。

enter image description here

这是我的 mongoDB 查询函数:我只需将字符串(在本例中为“jonas”)输入到 $regex 中,但我一定做错了什么,因为它没有返回所需的用户(其他两个条件为真)

const createUserQuery = (user, query) => User.find({
$and: [
{ full_name: { $regex: query, $options: 'i' } },
{ _workspace: user._workspace },
{ active: true }
]
}).select('profile_pic full_name email created_date');

示例 mongodb 用户文档

enter image description here

最佳答案

问题可能出在您的正则表达式查询上。

如果你想搜索所有以Jonas开头的名字

传递给 createUserQueryquery 参数的值应该类似于

^乔纳斯

^ 是此处获取所有以 Joans 开头的名称的关键

关于node.js - MongoDB 搜索用户 : filter based on name with regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com