首页 > 解决方案 > 我想在查询中搜索包含搜索词的所有词

问题描述

这是我的获取请求,我想搜索包含搜索查询中提供的单词的所有单词,但我得到一个空数组。我想根据搜索查询得到结果。结果应该是包含搜索查询的所有单词

app.get("/users", async (req, res) => {
  const page = parseInt(req.query.page);
  const limit = parseInt(req.query.limit);
  startIndex = (page - 1) * limit;
  endIndex = page * limit;
  let search = req.query.search;
  let newUsers;
  if (search) {
    console.log(search);
    newUsers = await User.find({ $text: { $search: search } });
    .limit(limit)
    .skip(startIndex)
    .sort({ name: 1 })
    .exec();
  } else {
    newUsers = await User.find()
      .limit(limit)
      .skip(startIndex)
      .sort({ name: 1 })
      .exec();
  }

  res.json(newUsers);
});

我的用户架构

const mongoose = require("mongoose");

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
});

userSchema.index({ name: "text" });
const User = mongoose.model("User", userSchema);
module.exports = User;

标签: node.jsmongodbmongoose

解决方案


推荐阅读