$ gte и $ lte для массивов

1

У меня есть схема

{
  temporary: [{
    low: 10,
    high: 50
  }, {
    low: 30,
    high: 40
  }],
  thresholds: [{
    type: 'temp',
    min: 20,
    max: 45,
  }]
}

Я хочу получить записи с условиями временного> минимального порога.

Я пробовал запрос { $where: "this.temporary.low > this.thresholds.min" } но он не работает.

  • 0
    На самом деле вы не можете так делать. вы должны использовать $ gt (больше чем) или $ lt (меньше чем) и использовать $ aggregate
  • 1
    И пороги, и временные являются массивами? Тогда какой элемент в пороге вы хотите сравнить с временным массивом? В принципе, вы можете создать желаемую структуру вывода?
Показать ещё 6 комментариев
Теги:
mongoose

1 ответ

0

Вы можете использовать запрос ниже, используя $expr

db.collection.find({
  "$expr": {
    "$gt": [
      { "$sum": "$temporary.low" },
      { "$sum": "$thresholds.min" }
    ]
  }
})
  • 0
    Я имею в виду не СУММУ временного. Я хочу проверить, имеет ли временное значение какое-либо низкое значение> thresholds.min, я верну эту запись
  • 0
    Есть ли у thresholds несколько элементов?
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню