He proporcionado la recopilación de datos de muestra de la siguiente manera. Estoy tratando de obtener el resultado en el último primer orden, por lo que he usado la paginación y lo he ordenado respectivamente. Pero cuando estoy tratando de ordenar datos enormes, digamos para el límite de aciertos de API 100 . Entonces me está arrojando error como
"message": "Error del ejecutor durante el comando de búsqueda :: causado por :: La ordenación excedió el límite de memoria de 33554432 bytes, pero no optó por la ordenación externa. Cancelando la operación. Pase allowDiskUse:true para participar".
{ "success": true, "message": "", "status": {}, "data": { "docs": [ { "_id": "5d1dbe9cad2de907c4a6c888", "requestedBy": { "adminId": "1", "adminName": "JJ" }, "reason": "Testing", "payload": [ { "recipient": { "to": "abc@abc.com", "from": "abc@abc.com", "bcc": "abc@abc.com" }, "data": { "b_name": "Cloud", "amount": 100, "l_id": 10, "date": "10", "month": "Jul", "year": "2019" }, "template": { "name": "Reminder", "type": "EMAIL" } } ], "createdAt": "2019-07-04T08:53:48.129Z", "updatedAt": "2019-07-04T08:53:48.129Z", "__v": 0, "id": "5d1dbe9cad2de907c4a6c888" } ] }}
const mongoose = require("mongoose"); const mongoosePaginate = require("mongoose-paginate-v2"); mongoosePaginate.paginate.options = { lean: true, limit: 200, sort:{ createdAt: -1 } }; const MODEL_NAME = "data"; const dSchema = mongoose.Schema( { requestedBy: { adminId: String, adminName: String }, reason: String, payload: mongoose.Mixed }, { timestamps: true } ); // Plugins dSchema.plugin(mongoosePaginate); // Methods to interact with models dSchema.statics.getTasks = (query, options) => { return mongoose.model(MODEL_NAME).paginate(query, options); };https://mongoosejs.com/docs/guide.html#indexes
https://mongoosejs.com/docs/guide.html#marcas de tiempo
https://docs.mongodb.com/manual/tutorial/optimize-query-performance-with-indexes-and-projections/
Los índices también mejoran la eficiencia en las consultas que se ordenan de forma rutinaria en un campo determinado.
https://docs.mongodb.com/manual/indexes/#create-an-index
Agregue un índice a createdAt para mejorar el rendimiento de la consulta
dSchema.index({ "createdAt" : -1 });https://www.mongodb.com/blog/post/performance-best-practices-indexing