Ne pouvez pas utiliser $match avec la mangouste et de l'agrégation cadre

C'est mon Schéma:

var userschema = new mongoose.Schema({

  user: String,
  follow: [String],
  imagen: [{ 

              title: String,
              date: { type: Date, default: Date.now }

           }]
 });

Et c'est le code:

 usermodel.findOne({ user: req.session.user }, function (err, user){
  usermodel.aggregate({$unwind: '$imagen'}, 
                   {$match: { _id: { $in: user.follow }}}, 
                   {imagen: true}, 
                   {$sort: {'imagen.date': 1}}, 
                    function (err, images){

                     console.log(images);              

                      res.render('home.ejs', {

                       user: user,
                       following: images

                      });
   });
  });

La follow contient les utilisateurs du _id.

Le code fonctionne, sauf que quand j'ai inclure la $match. J'utilise le $matchpour filtrer le résultat, en obtenant seulement les images de l'utilisateur que je suis, mais la console.journal de me montrer que le résultat de la aggregate de recherche n'est pas défini, mais quand je n'écris pas de la $match requête, j'obtiens des images, mais j'ai obtenir toutes les images, pas seulement les images de l'utilisateur que je suis.

Est qu'il ya une solution pour cela...?

Merci d'avance!

EDIT:

var express = require('express');
var MongoStore = require('connect-mongo')(express);
var fs = require('fs');
var mongoose = require('mongoose');
var app = express();
app.listen(9191);
var sessionStore = new MongoStore({db: 'session'});
app.configure(function(){
app.use(express.bodyParser());
app.set('views',__dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
app.use(express.cookieParser());
app.use(express.session({
store: sessionStore,
secret: 'secret'
}));
app.use(app.router);
});
var db = mongoose.createConnection('localhost', 'test');
var userschema = new mongoose.Schema({
user: String,
follow: [String],
imagen: [{ 
title: String,
date: { type: Date, default: Date.now }
}]
});
var usermodel =  db.model('usermodel', userschema);
var ObjectId = require('mongoose').Types.ObjectId;
app.get('/', middleware.noses, function (req, res){
res.render('home0.ejs');
});
app.get('/home', middleware.yeses, function (req, res){
usermodel.findOne({ user: req.session.user }, function (err, user){
if (user.follow.length != 0){
usermodel.find({ _id: {$in: user.follow } }, { user: true }, function (err, users){
var usernames = users.map(function(u){ return u.user });
usermodel.aggregate({$match: { _id: { $in: user.follow.map(
function(id){ return new ObjectId(id); })}}},
{$unwind: '$imagen'}, 
{imagen: true}, 
{$sort: {'imagen.date': 1}}, 
function (err, images){
console.log(images);
res.render('home.ejs', {
user: user,
following: images
});
});
});
}  else {
res.render('home.ejs', {
user: user,
following: undefined
});
}
});
});

EDIT:

[ { __v: 4,
_id: 50fd9c7b8e6a9d087d000006,
follow: ['50fd9cbd1322de627d000006', '50fd9d3ce20da1dd7d000006'],
imagen: 
[{ title: 'foo',
_id: 50fd9ca2bc9f163e7d000006,
date: Mon Jan 21 2013 20:53:06 GMT+0100 (CET) },
{ title: 'foot',
_id: 50fda83a3214babc88000005,
date: Mon Jan 21 2013 21:42:34 GMT+0100 (CET) }],
user: 'Mrmangado' }
Vous avez un projet, user avant de le détendre si vous avez l'intention de l'utiliser après le déroulement edit: lu trop vite, vous avez pour projet la _id out
Comment le projet _id?

OriginalL'auteur MrMangado | 2013-01-27