sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Henter langsom dokumenter (indeksering brugt)

Jeg stødte på det samme problem, da jeg hentede omkring 35.000 dokumenter. For at løse det brugte jeg aggregatfunktionen (sakulstra:aggregate ), og i mit tilfælde har det forstærket anmodningen utroligt. Resultatformatet er åbenbart ikke det samme, men det er stadig nemt at bruge til at beregne alle de ting, jeg har brug for.

Før (7000ms) :

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

Efter (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. Hvorfor kræver et mongodb replikasæt et ulige antal afstemningsknuder?

  2. En oversigt over MongoDB og belastningsbalancering

  3. Skub element i en hvilken som helst position af array i underdokumentet

  4. Heroku Custom Domain fungerer ikke