Перенос данных вместе с некоторыми новыми полями из одной коллекции в несколько коллекций с различной структурой документа в mongodb - PullRequest
0 голосов
/ 22 января 2019

Допустим, в mongodb есть коллекция пользователей с миллионами документов.Он имеет живые данные.Документ в коллекциях пользователей содержит данные о пользователях, заказах и продуктах.Теперь есть 3 новых клиента коллекции, заказов и продуктов.Требование состоит в том, чтобы переместить данные, относящиеся к пользователю, заказам, продуктам, представленным в коллекции пользователей, в три отдельные коллекции с именами клиентов, заказов и коллекции продуктов соответственно.

Документ в коллекции пользователей выглядит следующим образом:

{
  "_id": ObjectId("5c46b1ffb24b455dbe97c6e7"),
  "customerId": "ecf178",
  "name": "John",
  "contact": "johnsmith@gmail.com",
  "country": "USA",
  "orders": [
    {
      "orderID": "2761105175647575",
      "orderDate": "2018-04-24",
      "shippedDate": "2018-04-24",
      "discount": 200,
      "price": 1200
    }
  ],
  "products": [
    {
      "productId": "2761105175647575",
      "unitPrice": 1400,
      "productName": "FAN",

    }
  ]
}

Теперь я должен переместить поля customerId, name, contact в коллекцию " потребителей ".

Данные, присутствующие в заказах в документе коллекции пользователей, должны быть перемещены в Заказы Коллекция.Аналогично, данные в разделе «Продукты» в документе «Коллекция пользователей» необходимо переместить в коллекцию « Продукты * 1015».

Может кто-нибудь предложить лучший подход для переноса данных в реальном времени из одной коллекции в три новой коллекции.Во время переноса данных мы должны следить за тем, чтобы новые входящие данные в коллекции пользователей также переносились.Также во время миграции есть несколько новых полей, таких как uniqueId, которые будут являться своего рода значением UUID, сгенерированным системой, также необходимо добавить в новую коллекцию.Эти новые поля отсутствуют в существующих коллекциях пользователей.

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

Примечание. Здесь источником данных источника и получателя является только mongodb.

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