Здравствуйте. Есть объект пользователь, у него есть поле description где описаны его интересы. Пользователь на сайте через знак # вводит данные(т.е. интересы) и нужно найти всех пользователей, у которых есть хоть один из введенных интересов. на js перешел вчера, но логика предыдущих яп говорит, что нужно перегрузить стандартный метод find(), но что-то у меня не получается
async findPeople(ctx, next){
var search = ctx.request.body;
var arr = JSON.stringify(search.search.toString().split("#"));
console.log(arr);
for(var i = 0; i < arr.length; i++){
var user = await User.find({ description: function(){
if(User.description.toString().indexOf(arr[i]) > -1){
return User.description;
}
else{
return "";
}}
});
}
ctx.result = user;
await next();
},
в search я получаю в виде объекта строку, которую ввел пользователь, потом преобразую в массив строк. В User.find({ description: function()}) предполагается, что function() вернет результат, по которому и будет вестись поиск.
Скорее, это ближе к истине
user = await User.find({ description: function(){
if(description.toString().indexOf(arr[i]) > -1){
return search.search;
}
else{
return "";
}}
https://mongodb.github.io/node-mongodb-native/markdown-docs/queries.html
var conditions = [];
for(var i = 0; i < arr.length; i++){
conditions.push({ description: new RegExp(arr[i]) });
}
var user = await User.find({ $or: conditions });
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники