@Fengol

Возмодна ли логика при запросе к БД?

Представьте что есть документ содержащий два поля type (String) и target (Mixed), который в зависимости от типа, представляется одним из множества различных объектов.

const a = Schema({ a: Number });
const b = Schema({ b: String });

const doc = Schema({ type: String, target: Schema.Types.Mixed });

// если type имеет значение 'a', то поле target является объектом a и т.д.


Возможно ли с помощью mongoose написать запрос навыборкуданных таким образом, чтобы условия были определены для каждого конкретного типа? То есть в одном запросе выбрать данные для типа `a` у которого поле 'a' больше 5 и меньше 10, а для типа b поле b должно принадлежать к заданному диапазону символов ['a', 'b', 'c']. Если так можно покажите простой пример.
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@Urukhayy
Collection.find({
    $or: [
        {
            "type": "a",
            "target.a": { $gt: 5, $lt: 10 }
        },
        {
            "type": "b",
            "target.b": { $in: ['a', 'b', 'c'] }
        }]
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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