Есть ли в Amazon DynamoDB способ реализовать конвейер агрегации, подобный MongoDB? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь перейти с MongoDB на DynamoDB, мне нужно реализовать MongoDB, такой как конвейер агрегации в DynamoDB, не знаю, как реализовать в DynamoDB. Ниже мой конвейер агрегации для MongoDB

db.collection.aggregate([
  {
    "$match": {
      "$and": [
        {
          "$or": [
            {
              "attribute1": {
                "$regex": ".",
                "$options": "i"
              }
            },
            {
              "attribute2": {
                "$regex": ".",
                "$options": "i"
              }
            },

            {
              "_id": "."
            },
            {
              "attribute3": {
                "$regex": ".",
                "$options": "i"
              }
            },
            {
              "name": {
                "$regex": ".",
                "$options": "i"
              }
            }
          ]
        },
        {
          "attribute4": "xyz"
        }
      ]
    }
  },
  {
    "$project": {
      "fields": "$$ROOT"
    }
  },
  {
    "$sort": {
      "fields.createdDate": -1
    }
  },
  {
    "$skip": 0
  },
  {
    "$limit": 10
  }
])

Пожалуйста, предложите подход к реализации для вышеуказанного конвейера.

1 Ответ

0 голосов
/ 10 января 2019

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

Попробуйте использовать AWS Athena или Redshift для агрегации. Вы можете использовать Kinesis Firehose или Lambda, чтобы синхронизировать эти БД с изменениями в «Динамо».

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