Всем привет. Ребят, кто может помочь с запросом? В общем, есть

каталог в нем есть фильтр товаров. Где можно выбрать его 3 параметра жесткости.
[A, B, C]
А так же выбрать, с обеех сторон должен быть жестким или только с одной.

Сами записи хранятся примерно в таком виде:
{
"_id" : ObjectId("5b13113536d7c823729f7bf8"),
"title" : "Item 1",
"params" : {
"hardness" : "A",
"hardnessBot" : "B",
}
}

Если выбрана разная жесткость, то эт легко сделать запрос:
collection.find({
params.hardness: {$in: ["A", "B"]}
params.hardnessBot: {$in: ["B"]}
})

А вот если нужно, чтобы при выборе, жесткость должна быть одинаковой. Т.е. по разные стороны они должны быть равны. То как лучше написать запрос?

Ссылка на песочницу:
https://play.db-ai.co/m/XgMgC3FumAAB8Kvu

Грубо говоря мне нужен подобный запрос:
"params": {
"$elemMatch": {
"hardness": { "$in": ["A", "C"] },
"hardnessBot": { "$in": ["A", "C"] }
}
}

Хотя мне кажется такой запрос не реально написать. :(

2 ответов

15 просмотров

если я правильно понял вашу задачу, то что-то в этом духе? https://play.db-ai.co/m/XgMjns6DoQAB56Pa

Для магазинов с произвольными параметрами value attribute паттерн в виде поддокументов будет эффективнее

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта