sql >> Database >  >> NoSQL >> MongoDB

MongoDB Ophalen van documenten traag (indexering gebruikt)

Ik kwam hetzelfde probleem tegen toen ik ongeveer 35000 documenten ophaalde. Om het op te lossen, gebruikte ik de aggregaatfunctie (sakulstra:aggregate ) en in mijn geval heeft het het verzoek ongelooflijk gestimuleerd. Het resultaatformaat is natuurlijk niet hetzelfde, maar het is nog steeds gemakkelijk te gebruiken om alle dingen te berekenen die ik nodig heb.

Voor (7000ms):

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

Na (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. Een MongoDB-instantie of replicaset klonen

  2. UnhandledPromiseRejectionWaarschuwing:MongooseServerSelectionError

  3. mongoimport Docker Mislukt:fout bij het verbinden met de db-server:geen bereikbare servers

  4. Prestatiewinst bij het gebruik van UUID in plaats van de tekenreeksrepresentatie als _id op MongoDB?