Как обновить документ на основе двух условий фильтрации? - PullRequest
0 голосов
/ 14 марта 2019

У меня есть структура документа, которая выглядит следующим образом:

type Document = {
  _id: string
  title: string
  variants: VariantType[]
}

type VariantType = {
  timestamp: Int
  active: Boolean
  content: any[]
}

Я пытаюсь отфильтровать документ на основе двух условий фильтрации в одном запросе. Сначала я хочу сопоставить _id, а затем найти конкретный вариант на основе отметки времени.

Моя предыдущая версия запроса была фильтрацией по ключу active.

const updatedDocument = await allDocuments
        .findOneAndUpdate({ _id: mongoId, 'variants.active': false }, .... };

Изменение на

const updatedDocument = await allDocuments
        .findOneAndUpdate({ _id: mongoId, 'variants.timestamp': timestamp }, .... };

возвращает ноль.

Может ли монго соответствовать документу, подобному этому. Я видел, что есть селектор запросов $eq, но я не могу заставить его работать.

1 Ответ

0 голосов
/ 14 марта 2019

Оказывается, у меня проблема с меткой времени, которую я отправлял на сервер. Я получил его не из того места, и он не соответствовал ни одному из вариантов.

...