Есть ли у mongodb возможность автоматически создавать новый БД каждый месяц? - PullRequest
0 голосов
/ 19 марта 2019

У меня есть база данных, которая собирает статистику для игры, в которую я и некоторые друзья играем, и эта статистика сбрасывается каждые 31 день.Я пытаюсь понять, есть ли у mongodb возможность делать ежемесячные базы данных.Таким образом, каждый месяц создается новая база данных с той же конфигурацией, только с пустыми значениями, которая будет заполняться в течение месяца.

Ответы [ 2 ]

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

Поскольку вы используете Windows 10, я рекомендую использовать планировщик заданий Windows для запуска сценария для дублирования базы данных шаблонов в начале каждого месяца.

Перед тем, как приступить к выполнению сценария, который будет дублировать базу данных.вам нужно будет создать базу данных шаблонов, которая будет служить источником для каждой копии.В этом примере я просто назову базу данных шаблонов stats-template.Создайте его и настройте так, как вам нужно.

Теперь вам нужен пакетный скрипт:

@echo off

set year=%date:~-4%
set month=%date:~4,2%

set newdb=stats-%year%-%month%

mongodump --db stats-template
mongorestore --db %newdb% dump/stats-template

rmdir /s /q dump

Это создаст дамп (данные BSON) базы данных stats-template изатем восстановите эти данные в новой базе данных с именем stats-[year]-[month] (например, stats-2019-03).Он также удаляет дамп после восстановления.

Теперь вам нужно создать задачу, которая будет запускать этот скрипт раз в месяц.

  1. Открыть планировщик задач
  2. Нажмите«Создать задачу ...» (правая боковая панель)
  3. Назовите вашу задачу
  4. Перейдите на вкладку «Триггеры» и нажмите «Создать»
    • Начать задачу «По расписанию»"
    • Выберите" Ежемесячно "
    • Выберите хорошее начальное время начала
    • Месяцы: все
    • Дни: 1
  5. Перейдите на вкладку Действия и нажмите «Создать»
    • Действие: «Запустить программу»
    • Найдите пакетный скрипт сверху
  6. Нажмите «ОК», чтобы создать задачу

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

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

Вы можете добавить поле с индексом ttl к каждому документу в ваших коллекциях. Mongodb автоматически удалит эти документы по истечении времени. Документация

...