Removing specific items from array with MongoDB Removing specific items from array with MongoDB codeigniter codeigniter

Removing specific items from array with MongoDB


If you can identify the comment item by matching userid, name or comment -- then you can remove that comment using update() command with $pull modifier along with the appropriate condition.

If you cannot do as above, include an unique id in the comments (like UUID).

To delete the comment, do the following:

db.coll.update({<cond to identify document}, {$pull: {'comments': {'name': <name>}}} )

If you use the id, which is preferred:

db.coll.update({<cond to identify document}, {$pull: {'comments': {'id': <id>}}} )


maybe you can remove comment by its 'created_at' time, as the time is unique.

$db.coll.update({cond to identify document},{$pull:{'comments':{'created_at':<>}}})


I think, you have add mongodb id to each comment when insert it. You can create a new mongodb id like this;

$comment_id = new MongoID();

Now, you can delete comments by id with $pull + $update like @smoorthy's answer.