Mongoose query documents with matching array element
Mongoose query documents with matching array element
As a NoSQL database, MongoDB can store arrays as fields of a document. This article presents how to query such documents by filtering those with arrays that contain a specific value.
Let's imagine a collection containing the following movie records:
[
{
title: 'Inception',
actors: [
'Tom Hardy'
'Leonardo DiCaprio'
]
},
{
title: 'The Dark Knight Rises',
actors: [
'Tom Hardy',
'Christian Bale',
]
},
{
title: 'The Dark Knight',
actors: [
'Christian Bale',
'Heath Ledger'
]
},
]
There would be cases where one would want to query all movies in which a specific actor starred.
With Mongoose, this can be achieved using the find() function as follows:
const moviesStarringTomHardy = await Movies.find({actors: 'Tom Hardy'})