MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB Извличане на документи бавно (използвано индексиране)

Срещнах същия проблем, когато извличах около 35 000 документа. За да го реша, използвах агрегатната функция (sakulstra:aggregate ) и в моя случай това невероятно увеличи заявката. Форматът на резултата очевидно не е същият, но все пак е лесен за използване за изчисляване на всички неща, от които се нуждая.

Преди (7000ms) :

const historicalAssetAttributes = HistoricalAssetAttributes.find({
        date:{'$gte':startDate,'$lte':endDate},
        assetId: {$in: assetIds}
    }, {
        fields:{
            "date":1,
            "assetId":1,
            "close":1
        }
    }).fetch();

След (300 ms):

const historicalAssetAttributes = HistoricalAssetAttributes.aggregate([
        {
            '$match': {
                date: {'$gte': startDate, '$lte': endDate},
                assetId: {$in: assetIds}
            }
        }, {
            '$group':{
                _id: {assetId: "$assetId"},
                close: {
                    '$push': {
                        date: "$date",
                        value: "$close"
                    }
                }
            }
        }
    ]);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да получа стойностите от моята MongoDB заявка a const

  2. Mongodb Aggregation Framework:$group използва ли индекс?

  3. Вграден документ с асоциация за принадлежност в Mongoid

  4. Възможно ли е да преименувате полето _id след груповото агрегиране на mongo?

  5. mongodb задава нула в актуализацията