我给出了如下样本数据收集。我正在尝试在最新的第一订单中获取结果,因此我使用了分页并分别对其进行了排序。但是当我尝试对大量数据进行排序时,例如 API 命中限制 100 .然后它抛给我错误
"消息":":: 排序导致的查找命令:: 执行器错误超过内存限制33554432字节,但未选择加入外部排序。中止操作。通过允许磁盘使用:true选择加入。"
{
"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#timestamps
https://docs.mongodb.com/manual/tutorial/optimize-query-performance-with-indexes-and-projections/
索引还可以提高对给定字段进行常规排序的查询的效率。
https://docs.mongodb.com/manual/indexes/#create-an-index
将索引添加到 createdAt
以提高查询性能
dSchema.index({ "createdAt" : -1 });
https://www . MongoDB . com/blog/post/performance-best-practices-indexing
问题内容: 要点: 我们一天可以同时处理数千个平面文件。 内存限制是一个主要问题。 我们为每个文件进程使用线程。 我们不按列排序。文件中的每一行(记录)都被视为一列。 不能做: 我们不能使用Unix / Linux的sort命令。 无论多么轻巧,我们都无法使用任何数据库系统。 现在,我们不能只加载集合中的所有内容并使用排序机制。它将耗尽所有内存,程序将得到堆错误。 在这种情况下,您将如何对文件中的
本文向大家介绍Java程序以区分大小写的顺序对数组进行排序,包括了Java程序以区分大小写的顺序对数组进行排序的使用技巧和注意事项,需要的朋友参考一下 可以使用java.util.Arrays.sort()方法以区分大小写的顺序对数组进行排序。在这种情况下,此方法仅需要单个参数,即要排序的数组。演示此的程序如下所示- 示例 输出结果 现在让我们了解上面的程序。 首先定义数组arr []。然后打印未
本文向大家介绍可以单独排序以使用C ++进行排序的最大分区数,包括了可以单独排序以使用C ++进行排序的最大分区数的使用技巧和注意事项,需要的朋友参考一下 我们给定N个数字的数组,元素位于0和N-1范围内。元素未排序。目标是找到可以单独排序的数组的最大分区数量,然后可以将其串联起来以构成一个完整的长度为N的排序数组。 选择每个分区以使其中的元素未排序。对于介于0到N-1之间的N个数字,排序后的元素
问题内容: 假设我们在集合中有一些项目,并且我们想使用某些比较器对它们进行排序,并期望结果在列表中: 一种方法是对列表中的项目进行排序,例如: Anothe方法正在使用排序流: 我想知道哪种方法更有效?排序流是否有任何优势(例如在多核上进行Faste排序)? 在运行时复杂性方面/最快方面是高效的。 我不相信自己要实现一个完美的基准,学习并不能真正启发我。 问题答案: 可以肯定地说,两种形式的排序都
我有学生(弦)和老师(弦列表)。我想根据讲师人数按降序提取记录。讲师如下示例:[a、b、c]-3、[e、f]-2、[g、h、i、j]-4。 我要按4,3,2的顺序。 这取决于现场讲师阵列的大小。如何使用mongoTemplate或自定义mongodb查询或聚合进行查询??
问题内容: 我想创建一个(非匿名)函数,该函数按键按字母顺序对对象数组进行排序。我只编写简单的JavaScript代码,因此框架至少没有帮助我。 问题答案: 这个怎么样? 这使您可以指定用于对数组进行排序的键,这样您就不仅限于硬编码的名称排序。它将对所有共享属性的对象数组进行排序,这些属性将用作键。我相信那是您要找的东西?