J'ai un schéma qui ressemble un peu à ça :
var postSchema = new Schema({
created: { type: Date, default: Date.now },
updated: { type: Date, default: Date.now },
comments: { type: [Schema.ObjectId], ref: 'Comment' }
});
Ainsi, ma collection de commentaires est une collection d'identifiants d'objets faisant référence à mon schéma/collection de commentaires.
J'ai besoin de supprimer certains d'entre eux sur la requête, donc j'essaie ceci :
var comments = [1, 2, 4];
Post.update({ _id: post_id}, {'$pullAll': {comments: comments }})
.exec(function(err) {
// How to remove documents with 1, 2, 4 ids from a Comment collection properly
});
Après avoir exécuté le code ci-dessus, j'ai supprimé un certain nombre de commentaires d'un Post.comments, mais je dois également supprimer ces commentaires d'une collection 'Comments'. Comment dois-je faire ?
EDITAR: Comment puis-je obtenir les identifiants des documents qui n'ont pas été supprimés en fait. Un exemple simple :
Post.comments = [1, 2, 3];
Post.update({ _id: post_id}, {'$pullAll': {comments: [1,2]}});
Dans le code ci-dessus, un Post.comments a 1,2,3 seulement, mais nous essayons de tirer [1,2], donc j'ai besoin de savoir que id=3 n'existe pas dans Post.comments et je n'ai pas besoin de le supprimer de la collection 'Comments'.