Javascript 使用Mongoose有效地获取列表的一部分

Javascript 使用Mongoose有效地获取列表的一部分,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我有一个这样的模式 peopleSchema = Schema({ followerRefs: { type: [ { type: Schema.Types.ObjectId, ref: 'peoples'} ], select: false }, followRefs: { type: [ { type: Schema.Types.ObjectId,

我有一个这样的模式

peopleSchema = Schema({
    followerRefs: {
        type: [
            { type: Schema.Types.ObjectId, ref: 'peoples'}
        ],
        select: false
    },
    followRefs: {
        type: [
                { type: Schema.Types.ObjectId, ref: 'peoples'}
            ],
            select: false
        }
    });
每次,我只想选择followerRefs或followerRefs的一部分。例如,我想实现一个分页,所以我只想在followRefs中选择前20个,或者在followRefs中选择前21~40个

那么,有没有办法通过选择列表中的所有项来获取部分followerRefs

我似乎没有把我的问题解释清楚。我假设数据库中的followerRefs中有超过一百万个实体,我只想得到前20个实体,这意味着我只想得到其中0~19个实体的索引。所以我不想把一百万个实体全部加载到内存中


因此,我想知道是否有任何方法可以在不加载所有实体的情况下获取前20个实体?

如果只是一个名称列表,我认为您不应该通过mongoose或后端处理排序。 但这仍取决于数据的大小

通过javascriptfrontend,我将首先根据类别对列表进行排序,然后再对其进行排序。 使用普通javascript进行排序可能很复杂,我不是这方面的专家,因为我使用插件。XD

这里有一个链接,其中有一个关于javascript排序的答案。

因为您询问的是数组的各个部分,所以只需使用javascript切片函数即可

var myList=[Follower1,Follower2,Follower3,…]//假装一直到20点
var page1=myList.0,19;这与这里的提问和回答不同吗:有点不同。在这个问题上,作者希望找到许多不同的文档,并限制文档的数量。但是在我的例子中,我已经得到了一个人文档,我想限制这个人文档的list属性。无论如何谢谢你!哦,对不起,我没有把我的问题解释清楚。我假设在下面的例子中,数据库中可能有超过100万个实体。我不想把它们都记在记忆里。我只想得到前20个人,这意味着我想得到0到19的索引,我不需要对列表进行排序。无论如何谢谢你!