MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB Pobieranie dokumentów wolno (używane indeksowanie)

Z tym samym problemem spotkałem się, gdy pobierałem około 35 000 dokumentów. Aby go rozwiązać, użyłem funkcji agregującej (sakulstra:aggregate ) iw moim przypadku niesamowicie wzmocniło żądanie. Format wyniku oczywiście nie jest taki sam, ale nadal jest łatwy w użyciu do obliczenia wszystkich potrzebnych mi rzeczy.

Przed (7000 ms):

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

Po (300ms):

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. Meteor bez mongo

  2. Importuj pliki CSV z katalogu, aby zasiać bazę danych w Rails

  3. Reaguj na żądania POST za pomocą Express/Node i MongoDB

  4. Jakie znaczenie ma kolejność indeksów złożonych w MongoDB pod względem wydajności?

  5. Jaka biblioteka JavaScript może oceniać predykaty zapytań typu MongoDB względem obiektu?