Я создал несколько учетных записей пользователей на mongodb и хочу отсортировать их по имени пользователя. Я сравниваю имена пользователей в базе данных со строкой, предоставленной через запрос aax ios, со значением тела, которое берется из входного значения, например:
frontend
const findUsers = async () => {
try {
const response = await axios.post(`http://localhost:8080/search-users/${_id}`, { searchValue });
setReturnedUser(response.data.matchedUser);
} catch (error) {
console.log(error);
}
}
findUsers();
backend
exports.sort = (req, res) => {
let result;
User.find({ name: req.body.searchValue }).exec((error, users) => {
if (error) {
return res.status(400).json({
message: error,
});
}
result = users;
res.status(200).json({
message: 'Description added successfully',
matchedUser: result,
});
});
};
Проблема этого подхода заключается в том, что пользователи возвращаются только после того, как я ввожу полное имя. Я хочу, чтобы пользователи возвращались при вводе имени, поэтому несколько совпадающих пользователей будут возвращены, когда я начну печатать, и по мере продолжения список будет сужаться, пока не останется только соответствующий пользователь.
Я успешно достиг этого на стороне реакции, но это было возможно только путем извлечения всех пользователей из базы данных, что было бы очень плохой идеей для многих пользователей. Очевидное решение - выполнить сортировку на сервере.