2015-02-08 121 views
0

我有Node.js的一个典型项目 - 快速 - 猫鼬 - MongoDB的如何填充嵌套查询

我的目标是通过调用的主要用户是完全符合所有用户的所有最近的文章,以产生News饲料。

用户模型

var UserSchema = new Schema({ 
    username: { type: String, required: true, unique: true }, 
    password: { type: String, required: true }, 
    email: String, 
    articles : [{ type: Schema.Types.ObjectId, ref: 'Article' }], 
    follows: [{ type: Schema.Types.ObjectId, ref: 'User' }], 
    followers: [{ type: Schema.Types.ObjectId, ref: 'User' }] 
}); 

文章型号

var articleSchema = new Schema({ 
    _userID: { type: Schema.Types.ObjectId, ref: 'user' }, 
    url: String, 
    summary: String, 
    title: String, 
    content: String, 
    image_url: String, 
}); 

问题:

我想写一个猫鼬查询执行以下操作

通过用户ID
  1. 搜索,并得到一个列表如下
  2. 填充这些追随者最近的文章

我能弄清楚如何填充内容,但我不知道该怎么那么也将填充如下受人尊敬的文章和按时间顺序(最近>最旧)

exports.getFeed = function(req, res) { 
     var id = mongoose.Types.ObjectId(req.params.id); 
     // mongoose query goes here 
    }; 

任何帮助将不胜感激回报他们。

回答

0

您需要两个查询。

第一个查询是你已经想出并需要的一个查询(获取下面的列表)。 你基本上需要一个阵列的如下ID,然后你问该用户提供的阵列中的所有文章:

.where('_userID').in(arrayOfFollowIDs)

希望帮助