Использование mongodb, я пытаюсь найти записи, в которых name
соответствует введенным пользователем среди определенного списка категорий или где категории из того же списка соответствуют пользовательский ввод.Mongodb, найти записи из названия или категорий из списка определенных категорий
Я хочу, чтобы отфильтровать коллекцию, чтобы показывать только эти категории ["major olympian", "twelve titan", "primordial deity"]
Пользователь может осуществлять поиск по name
одной из этих категорий или может осуществлять поиск по категориям, чтобы отобразить все записи из категорий, соответствующих пользователю вход и упоминаются в массиве
Перед коллекция фильтровали это работало, но теперь я только хочу, чтобы результаты отфильтрованного массива категорий:
let _query = {
'$or': [
{
"name": {
"$regex": search,
"$options": "i"
}
},
{
"category": {
"$regex": search,
"$options": "i"
}
}
]
};
Вот конкретный пример:
Если тип пользователя an
он будет возвращать все записи, где name
содержит an
из категорий ["major olympian", "twelve titan", "primordial deity"]
, а также все записи из major olympian
и twelve titan
Вот пример моего сбор с одной категории creature
, который никогда отображается:
{
"name": "Zeus",
"greekName": "Ζεύς, Zeus",
"romanName": "Jupiter",
"description": "King of the gods, ruler of Mount Olympus, and god of the sky, weather, thunder, lightning, law, order, and justice. He is the youngest son of Cronus and Rhea. He overthrew Cronus and gained the sovereignty of heaven for himself. In art he is depicted as a regal, mature man with a sturdy figure and dark beard. His usual attributes are the royal scepter and the lightning bolt. His sacred animals include the eagle and the bull. His Roman counterpart is Jupiter, also known as Jove.",
"category": "major olympian"
},
{
"name": "Ophiogenean dragon",
"greekName": "",
"romanName": "",
"description": "a dragon that guarded Artemis' sacred grove in Mysia.",
"category": "creature",
},
{
"greekName": "Ἀχλύς (Akhlýs)",
"name": "Achlys",
"description": "The goddess of poisons and the \"Death-Mist\", and personification of misery and sadness. Said to have existed before Chaos itself.",
"category": "primordial deity",
"romanName": ""
}
Вы можете '$ и 'список категорий с существующим запросом' $ или'. Разве это не сработает? – Veeram
ой! Я думаю, что он делает :) Спасибо! Я думаю, что понимаю, как работают эти запросы. –
Вот в Simplied версии 'Const _query = { \t категория: { \t \t $ в: TEMP_CATEGORIES \t}, \t '$ или': [{ \t \t "имя": { \t \t \t«$ регулярное выражение ": поиск, \t \t \t "$ варианты": "я" \t \t} \t}, { \t \t" Катег ORY ": { \t \t \t "$ регулярное выражение": поиск, \t \t \t "$ варианты": "я" \t \t} \t}] };' – Veeram