distinct with populate.

309 views
Skip to first unread message

Andries Heylen

unread,
Sep 29, 2013, 8:01:59 AM9/29/13
to mongoo...@googlegroups.com


I have the following model:

var followerSchema = new Schema({
    id_follower: {type: Schema.Types.ObjectId, ref: 'Users'},
    id_post: {type: Schema.Types.ObjectId, ref: 'Posts'}
});

I want to be able to find all posts for a list of followers. When I use find, it returns me of course multiple times the same post as multiple users can follow the same post.

So I tried to use distinct, but I have the feeling the "populate" does not work afterwards.

Here is my code:

followerModel
    .distinct('id_post',{id_follower:{$in:followerIds}})
    .populate('id_post')
    .sort({'id_post.creationDate':1})
    .exec(function (err, postFollowers) {
        console.log(postFollowers);
    })

It only returns me the array of the posts, and it is not populated.

I am new to mongoDB, but according to the documentation of mongoose, the "distinct" method should return a query, just as the "find" method. And on a query you can execute the "populate" method, so I don't see what I am doing wrong.

Reply all
Reply to author
Forward
0 new messages