Mangouste trouver/mise à jour le sous-document

J'ai les schémas suivants pour le document Dossier:

var permissionSchema = new Schema({
    role: { type: String },
    create_folders: { type: Boolean },
    create_contents: { type: Boolean }
});

var folderSchema = new Schema({
    name: { type: string },
    permissions: [ permissionSchema ]
});

Ainsi, pour chaque Page, je peux avoir le nombre d'autorisations. Dans mon CMS il y a un panneau où j'ai la liste de tous les dossiers et leurs autorisations. L'administrateur peut modifier une autorisation unique et de l'enregistrer.

Je pourrais facilement sauvegarder l'ensemble de l' Dossier document avec ses autorisations de tableau, où seule une autorisation a été modifié. Mais je ne veux pas sauver tout le document (le vrai schéma a beaucoup plus de champs) j'ai donc fait ceci:

savePermission: function (folderId, permission, callback) {
    Folder.findOne({ _id: folderId }, function (err, data) {
        var perm = _.findWhere(data.permissions, { _id: permission._id });                

        _.extend(perm, permission);

        data.markModified("permissions");
        data.save(callback);
    });
}

mais le problème est que perm est toujours undefined! J'ai essayé de "statiquement" récupération de l'autorisation de cette façon:

var perm = data.permissions[0];

et il fonctionne très bien, le problème est donc de Souligner que la bibliothèque n'est pas en mesure d'interroger les autorisations de tableau. Donc je suppose qu'il y a de mieux (et workgin) pour obtenir le sous-document de récupéré un document.

Une idée?

P. S.: j'ai résolu la vérification de chaque élément dans les données.l'autorisation de tableau à l'aide d'une boucle "for" et de vérification des données.les autorisations[i]._id == autorisation._id mais j'aimerais une solution plus intelligente, je sais qu'il y a un!