In MongoDB we use the find[]
and find_one[]
methods to find data in a collection.
Just like the SELECT statement is used to find data in a table in a MySQL database.
Find One
To select data from a collection in MongoDB, we can use the find_one[]
method.
The find_one[]
method returns the first occurrence in the selection.
Example
Find the first document in the customers collection:
import pymongo
myclient = pymongo.MongoClient["mongodb://localhost:27017/"]
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one[]
print[x]
Run example »
Find All
To select data from a table in MongoDB, we can also use the find[]
method.
The find[]
method returns all occurrences in the selection.
The
first parameter of the find[]
method is a query object. In this example we use an empty query object, which selects all documents in the collection.
No parameters in the find[] method gives you the same result as SELECT * in MySQL.
Example
Return all documents in the "customers" collection, and print each document:
import pymongo
myclient = pymongo.MongoClient["mongodb://localhost:27017/"]
mydb = myclient["mydatabase"]
mycol =
mydb["customers"]
for x in mycol.find[]:
print[x]
Run example »
Return Only Some Fields
The second parameter of the find[]
method is an object describing which fields to include in the result.
This parameter is optional, and if omitted, all fields will be included in the result.
Example
Return only the names and addresses, not the _ids:
import pymongo
myclient = pymongo.MongoClient["mongodb://localhost:27017/"]
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find[{},{ "_id": 0, "name": 1, "address": 1 }]:
print[x]
Run example »
You are not allowed to specify both 0 and 1 values in the same object [except if one of the fields is the _id field]. If you specify a field with the value 0, all other fields get the value 1, and vice versa:
Example
This example will exclude "address" from the result:
import pymongo
myclient = pymongo.MongoClient["mongodb://localhost:27017/"]
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find[{},{ "address": 0 }]:
print[x]
Run example »
Example
You get an error if you specify both 0 and 1 values in the same object [except if one of the fields is the _id field]:
import pymongo
myclient = pymongo.MongoClient["mongodb://localhost:27017/"]
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find[{},{ "name": 1, "address": 0 }]:
print[x]
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
MongoDB is a cross-platform, document-oriented database that works on the concept of collections and documents. MongoDB offers high speed, high availability, and high scalability.
Fetching data from MongoDB
Pymongo provides various methods for fetching the data from mongodb. Let’s see them one by one.
1] Find One: This method is used to fetch data from collection in mongoDB. It returns first first occurrence.
Syntax :
find_one[]
Example:
Sample Database:
Python3
import
pymongo
db
=
client[
"database"
]
col
=
db[
"GeeksForGeeks"
]
x
=
col.find_one[]
print
[x]
Output :
2] Find All: For all occurrences in the selection, use find[] method. It works like Select * query of SQL.
Syntax :
find[]
Example:
Python3
import
pymongo
db
=
client[
"database"
]
col
=
db[
"GeeksForGeeks"
]
x
=
col.find[]
for
data
in
x:
print
[data]
Output:
find_one[] and find[] accepts an optional filter parameter that selects which documents to include in the result set. Can be an empty document to include all documents.
3]
Fetching only specific fields: If you want to fetch only some fields then in the find method pass the first parameter as {} and second parameter as 1 for those field that you want to fetch and 0 for those you don’t want to fetch.
Syntax:
find[{},{field_data:bool}]
Example:
Python3
import
pymongo
db
=
client[
"database"
]
col
=
db[
"GeeksForGeeks"
]
x
=
col.find[{},{
'_id'
:
0
,
'appliance'
:
1
,
'rating'
:
1
,
'company'
:
1
}]
for
data
in
x:
print
[data]
Output: