Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs并使用moongose改进搜索_Javascript_Node.js_Mongoose - Fatal编程技术网

Javascript Nodejs并使用moongose改进搜索

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

我希望能够在db中更自由地搜索字符串。 例如,我存储名称和lastnam,比如“Joe Doe”

我希望能在这样的字符串中找到他: 乔,乔,多,多伊,乔多,乔多,多伊乔,多伊乔 还有,如果有像Johe doe这样的拼写错误

我使用moongose来处理我的atlas DB(mongoDB)

这就是我现在拥有的:

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