【发布时间】:2018-08-26 15:14:20
【问题描述】:
假设我有一些记录如下:
{
id: 1,
age: 22,
name: 'A',
class: 'Y'
},
{
id: 2,
age: 25,
name: 'B',
class: 'D'
},
{
id: 3,
age: 30,
name: 'C',
class: 'Y'
},
{
id: 4,
age: 40,
name: 'D',
class: 'B'
}
现在我需要获取年龄小于 28 岁的最后(最近)记录。为此,我可以使用以下代码:
const firstUsersYoungerThan28 = await Users.find({
class: 'C',
age: {
$lt: 28
}
})
.sort({
age: -1
})
.limit(1)
.lean();
const firstUserYoungerThan28 = firstUsersYoungerThan28[0];
假设集合有数百万条记录。我的问题是,这是最有效的方法吗?有没有更好的方法来做到这一点?
我最担心的是,我的应用程序是否首先将记录加载到内存中以便对它们进行排序?
【问题讨论】: