I have a collection in a MongoDB that contains a field "events" which is an array. I need to write an aggregate query for this that checks for the events array to not be empty, but can't find a way to do this.
I want something like:
db.collection.aggregate([
{
$match: {
events: {
"$empty": false
}
}
}
]);
After some digging around and having tried several options (including a nasty project of $gte: 0 of the $size followed by a match on that projected field) I eventually found the following makes sense and actually works:
db.collection.aggregate([
{
$match: {
"events.0": {
"$exists": true
}
}
}
]);