1. Overview
In this article, we will learn to find documents by id in MongoDB compass. To learn more about MongoDB, refer to these articles.
2. MongoDB ObjectId
In MongoDB, _id
field reserved as the primary key for the collection so that we can uniquely identify each document in the collection. The _id
field contains a unique ObjectID
value.
By default when inserting documents in the collection, MongoDB automatically generates and assigns ObjectId to the _id
field of each document. ObjectID
can be considered globally unique across all documents.
You can also specify a 24-character hexadecimal string value explicitly for the ObjectId
.
y = ObjectId("507f191e810c19729de860ea")
Alternatively, you can specify any other value to the _id
field.
3. MongoDB compass find by id
In MongoDB compass, you can use the filter
field in UI to find a document by _id
field.
3. MongoDB find by id – aggregate pipeline
If you want to filter documents using _id
field in the aggregate pipeline, you can use the $match
stage.
The $match
stage filters the documents to pass only the documents that match the specified condition(s) to the next pipeline stage.
{ $match: { <query> } }
$match
takes a document that specifies the query conditions.
You can place the $match
as early in the aggregation pipeline as possible. Because $match
limits the total number of documents in the aggregation pipeline, earlier $match
operations minimize the amount of processing down the pipe.
$match has below restrictions:
To include an aggregation expression in $match
, use a $expr
query expression.
- You cannot use
$where
in$match
queries as part of the aggregation pipeline. - You cannot use
$near
or$nearSphere
in$match
queries as part of the aggregation pipeline. - To use
$text
in the$match
stage, the$match
stage has to be the first stage of the pipeline.
4. Conclusion
To sum up, we have learned to find a document by id in MongoDB.