Mastering The MongoDB Query Tutorial – Find | Sort | Count Query Tutorial from Coding compiler. In the first chapter, we learn about find.
A preliminary understanding of the command. In addition toselectors
outsidefind
as well as more features. We have already said thatfind
the result of the return is onecursor
. We will take a closer look at what it means.
MongoDB Query Tutorial – Find | Sort | Count
Let’s start learning about MongoDB queries like find, sort and count queries.
Field selection
Before starting cursors
the topic, you should know that find
there is a second optional parameter called “projection”. This parameter is a list of fields we want to retrieve or exclude. For example, we can just query the name of the returning unicorn without any other fields:
db.unicorns.find({}, {name: 1});
By default, _id
fields are always returned. We can explicitly exclude it from the returned result in this way {name:1, _id: 0}
.
Except for _id
fields, you can’t mix and retrieve searches and exclusions. Think about it, this makes sense. You can only explicitly retrieve or exclude certain fields.
MongoDB Sort Query
I have mentioned it many times in the current position, find
returning a cursor, which will only be executed when needed. However, what you see in the shell is that it is find
executed immediately.
This is just the behavior of the shell. We can find
observe cursors
the true behavior through a chained approach . Let’s take a look sort
. We specify the fields we want to sort, in JSON mode, where 1 means ascending -1 means descending. such as:
//heaviest unicorns first
db.unicorns.find().sort({weight: -1})
//by unicorn name then vampire kills:
db.unicorns.find().sort({name: 1,
vampires: -1})
Just like a relational database, MongoDB allows you to sort the indexes. We will discuss the index in detail later. That, you should know that MongoDB has a size limit for sorting unindexed fields.
That is, if you try to sort a very large, unindexed result set, you get an exception. Some people think this is a disadvantage. To be honest, I hope that more databases can have this ability to reject unoptimized queries. (I’m not talking about the disadvantages of each MongoDB as an advantage, but I’ve seen enough databases that lack optimization, and I really hope they have a strict-mode.)
MongoDB Paging
Paging through results can be limit
and skip
to implement cursor method. For example, to get the second and third heavy unicorns, we can do this:
db.unicorns.find()
.sort({weight: -1})
.limit(2)
.skip(1)
Through the cooperation of the limit
sum sort
, you can avoid causing problems when sorting non-index fields.
MongoDB Count Query
The shell can be executed directly on a collection count
like this:
db.unicorns.count({vampires: {$gt: 50}})
In fact, it count
‘s a cursor
way, the shell simply provides a shortcut. This is required when executing in a way that does not provide a shortcut (the same can be done in the shell):
db.unicorns.find({vampires: {$gt: 50}})
.count()
Related MongoDB Tutorials
What is MongoDB Tutorial For Beginners