如何在猫鼬中对组合结果进行分页
How do I paginate combined results in mongoose?
我有一个User
模型,以及两个不同的关联模型Profile
,WorkProfile
。profile
模型包含有关用户线路名称、电子邮件、家庭住址等的一般信息,workprofile
包含当前办公地址、办公电话、办公电子邮件等详细信息。用户模型存储这两者objectID
,并使用profile
和workprofile
键引用它们。
现在,我正在尝试构建的是基于这些关联模型中的字段对用户模型进行高级搜索。我看到的一种方法是单独查询它们,然后使用_.concat
来连接结果。但问题是我无法在最终结果上实现skip
或limit
以获得正确的分页。通过适当的分页执行此操作的最佳方法是什么?
而不是在配置文件和工作配置文件上使用ref
您可以像下面一样将其添加到用户中,这允许将查找方法与 profile.name
等一起使用。
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
}
});
这可能并不总是好主意,但这是可能的。
相关文章:
- 如何在猫鼬中对组合结果进行分页
- 组合框在提交更改时给出结果,但刷新 JavaScript 设置
- 组合我的对象并获得预期的结果
- 组合来自两个独立函数的结果
- 使用 JavaScript 将多个对象结果集的数组合并到单个数组中
- 将结果组合到一个对象中
- 我可以把两个骨髓动画序列组合成一个语句,仍然得到相同的结果吗
- API 设计:如何组合两个延迟 jQuery 对象的结果
- 组合然后排序Javascript数组.得到不可预测的结果
- 尝试使用parse.com-javascript中一个查询的结果与新查询的结果组合
- Extjs组合框在存储区未加载任何结果时保持重置文本值
- 用于组合循环、文本、复选框和结果的JavaScript代码
- 返回包含所有可能的括号组合和每个括号组合的结果的等式
- Jquery组合选择的结果和一些变量's值仅适用于第一次选择更改
- 具有唯一结果的两个数字组合的精简算法
- 如何显示结果在不同的文本框上单击组合框在php
- 按字母顺序从复选框组合中获得动态结果
- Jquery - PHP组合变量和输出结果
- 在jQuery中组合复选框选择器以获得唯一的结果
- 循环多个HTTP请求并组合结果