Curiously Chase

MongoDB

An overview of MongoDB from my perspective and experience.

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