sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Pomalé načítání dokumentů (použito indexování)

Narazil jsem na stejný problém, když jsem načítal asi 35 000 dokumentů. K vyřešení jsem použil agregační funkci (sakulstra:aggregate ) a v mém případě to neuvěřitelně zvýšilo požadavek. Formát výsledku samozřejmě není stejný, ale přesto je snadné jej použít k výpočtu všech věcí, které potřebuji.

Před (7000 ms) :

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

Po (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. Uložení objektu Mongoose do dvou kolekcí

  2. Spring Data Mongo Repository::Společná sdílená metoda pro všechny problémy Repo

  3. Aktualizujte položku v poli, které je v poli

  4. mongodb schema.createIndex není funkce