MongoDB
Common Query Patterns
This is a collection built up over time of queries I use and find helpful.
Document Arrays
Find any documents where key smartEvents
exist and has an array length that's greater than 0:
{smartEvents: { $exists: true, $not: { $size: 0 } } }
Find any subdocuments of governs
and an array key for groups
where groups
contains an ObjectID
of 622b8fe0968213000946ee1e
{"governs.groups":{ $in: [ObjectId('622b8fe0968213000946ee1e')]}}
$elemMatch
$elemMatch
is a useful operator for when you want to search an array of subdocuments where a field contains a value. In this example, responses
is an array with a document that has a field of content
:
{responses: {$elemMatch: {"content": {$regex:"Maybe tolerances could"}}}}
Also note $regex
in the query above. This operator lets you search for a regular expression (or a plain string) within a value. This is useful when you don't want to search the whole value of a property in a document.
MongoDB Compass
I use Compass pretty heavily for querying data in MongoDB.
Share on Twitter