Очистка документов в MongoDB без влияния на рабочий набор - PullRequest
0 голосов
/ 10 октября 2019

У нас есть коллекция документов, и каждому документу соответствует временное окно. (Например, такие поля, как «fromDate» и «toDate»). После истечения срока действия документа (т. Е. В прошлом toDate) наши клиенты больше не обращаются к документу.

Итак, мы хотели очистить эти документы, чтобы уменьшить количество документов в коллекции и тем самым ускорить наши запросы. Однако позже мы поняли, что эти прошлые данные могут быть важны для анализа характера изменений данных, поэтому мы решили заархивировать их вместо полной очистки. Итак, вот что я придумала.

  1. Допустим, у нас есть «collectionA», у которого есть прошлые версии документов
  2. Запрос всех прошлых документов в «collectionA». (запросы выполняются на вторичном сервере)
  3. Вставьте их в отдельную коллекцию под названием "collectionA-архив"
  4. Удалите документы из коллекции A, которые успешно вставлены в архив
  5. Удалите документы в «collectionA-архиве», которые соответствуют определенному условию. (мы не хотим хранить огромный архив)

Мой вопрос здесь, хотя я делаю запросы на Вторичном сервере, так как вставки происходят в Первичном, документы вставляются вИз архива коллекции сделать это на рабочий набор Primary? Последнее, что нам нужно, это то, что эти прошлые документы хранятся в оперативной памяти Primary, что может повлиять на производительность нашего действующего API.

Я знаю, что одним из решений может быть вставка прошлых документов в отдельный сервер БД. Но приобретение другого сервера немного хлопотно. Поэтому хотелось бы знать, достижимо ли это на одном сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...