Я создаю приложение в стеке MEAN (angular, node.js, mongodb, express), где пользователи заполняют форму предпочтений, которая включает 8 вариантов, я хочу иметь возможность запрашивать базу данных и находить пользователей, упорядоченных по ближайшимсвязанные параметры предпочтений для наименее близких связанных (мин. 1 совпадение).
Я посмотрел Elastic Search, но я думаю, что это только поиск по индексу, и я не смогу полностью вернуть список пользователей.Каковы некоторые из моих вариантов?Должен ли я перейти на другую базу данных?Запросы на основе совпадений, которые я искал для mongoose, не такие динамические ...
В настоящее время моя схема предпочтений настроена как объект с 8 различными полями, логическое значение для true / false.Я попытался сделать это в виде массива, где, если предпочтение проверено, а затем добавить к массиву схемы предпочтений.Пока что я не могу придумать какие-либо твердые решения.
My Schema:
const PreferenceSchema = new mongoose.Schema({
gender: {type: String, required: [true, 'Please select a gender preference.']},
weight_loss: {type: Boolean, default: false},
cardio: {type: Boolean, default: false},
endurance: {type: Boolean, default: false},
flexibility: {type: Boolean, default: false},
strength: {type: Boolean, default: false},
muscle: {type: Boolean, default: false},
genFit: {type: Boolean, default: false}
})
Это внутри Схемы пользователя:
UserSchema = //some code here{
preference: {
type: PreferenceSchema,
default: null
}
// the rest of the schema
}
Я на самом деле поставилЭтот проект продлили на 2 месяца, потому что я и мои коллеги из учебного лагеря по программированию не могли найти решение для него.Я просто согласился найти все, что соответствует гендерным предпочтениям.Пожалуйста, дайте мне знать, в каком направлении я должен смотреть.