Javascript 如何在mongoose中对组合结果进行分页?

Javascript 如何在mongoose中对组合结果进行分页?,javascript,node.js,mongoose,pagination,Javascript,Node.js,Mongoose,Pagination,我有一个用户模型和两个不同的关联模型配置文件,工作配置文件。profile模型包含有关用户线路名称、电子邮件、家庭地址e.t.c的一般信息,workprofile包含当前办公室地址、办公室电话、,office email e.t.c.用户模型存储这两个对象的objectID,并使用profile和workprofile键引用它们 现在,我试图构建一个基于这些关联模型中的字段的用户模型高级搜索。我看到的一种方法是分别查询它们,然后使用\uu.concat加入结果。但问题是我无法对最终结果执行跳过或

我有一个
用户
模型和两个不同的关联模型
配置文件
工作配置文件
profile
模型包含有关用户线路名称、电子邮件、家庭地址e.t.c的一般信息,
workprofile
包含当前办公室地址、办公室电话、,office email e.t.c.用户模型存储这两个对象的
objectID
,并使用
profile
workprofile
键引用它们


现在,我试图构建一个基于这些关联模型中的字段的用户模型高级搜索。我看到的一种方法是分别查询它们,然后使用
\uu.concat
加入结果。但问题是我无法对最终结果执行
跳过
限制
,以获得正确的分页。正确分页的最佳方法是什么?

不必在配置文件和工作配置文件上使用
ref
,您可以像下面这样将其添加到用户中,这样就可以对
profile.name
等使用find方法

var ProfileSchema = mongoose.Schema({
    name: String
});

var WorkProfileSchema = mongoose.Schema({
    email: String
});

var UserSchema = mongoose.Schema({
    profile: ProfileSchema,
    work_profile: WorkProfileSchema 
});    

var User = mongoose.model('User', UserSchema);

var user = new User({
    profile: {name: 'Molda'},
    work_profile: { email: 'my@email.com'}
});

user.save(function(err, u) {

    User.findOne({'profile.name':'Molda'},function(err, user) {

        console.log('user', user);

    })

});
甚至使用简单的对象

var UserSchema = mongoose.Schema({
    profile: {
        name: String
    },
    work_profile: {
        email: String
    }
});
这可能并不总是一个好主意,但这是可能的