Python MongoDB 查找

在 MongoDB 中,我们使用 find 和 findOne 方法来查找集合中的数据。

就像 SELECT 语句用于查找 MySQL 数据库中的表中的数据一样。

查找一项

如需在 MongoDB 中的集合中选取数据,我们可以使用 find_one() ਮੇਥਡ。

find_one() 方法返回选择中的第一个匹配项。

ਉਦਾਹਰਣ

查找 customers 集合中的首个文档:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)

ਉਦਾਹਰਣ ਚਲਾਓ

查找全部

如需从 MongoDB 中的表中选取数据,我们还可以使用 find() ਮੇਥਡ。

find() ਮੇਥਡ ਵਾਲੇ ਚੁਣੇ ਹੋਏ ਸਾਰੇ ਮੈਚਿੰਗ ਆਟੋਮੈਟਿਕ ਵਾਪਸ ਦਿੰਦਾ ਹੈ。

find() ਮੇਥਡ ਦਾ ਪਹਿਲਾ ਪੈਰਾਮੀਟਰ query ਆਬਜੈਕਟ ਹੈ। ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਅਸੀਂ ਇੱਕ ਖਾਲੀ query ਆਬਜੈਕਟ ਵਰਤੇ ਹਾਂ ਜਿਸ ਨਾਲ ਕਲੈਕਸ਼ਨ ਵਿੱਚ ਸਾਰੇ ਦਸਤਾਵੇਜ਼ਾਂ ਚੁਣੇ ਜਾਣਗੇ。

find() ਮੇਥਡ ਵਿੱਚ ਕੋਈ ਪੈਰਾਮੀਟਰ ਪ੍ਰਦਾਨ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ MySQL ਵਿੱਚ SELECT * ਨਾਲ ਸਮਾਨ ਨਤੀਜਾ ਦੇਣ ਵਾਲਾ ਹੋਵੇ。

ਉਦਾਹਰਣ

ਸਾਰੇ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ "customers" ਕਲੈਕਸ਼ਨ ਵਿੱਚੋਂ ਲੈ ਕੇ ਪ੍ਰਿੰਟ ਕਰੋ:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
  print(x)

ਉਦਾਹਰਣ ਚਲਾਓ

ਸਿਰਫ਼ ਕੁਝ ਫੀਲਡਾਂ ਵਾਲੇ ਵਾਪਸ ਦਿੰਦਾ ਹੈ

find() ਮੇਥਡ ਦਾ ਦੂਜਾ ਪੈਰਾਮੀਟਰ ਹੈ ਜੋ ਕਿ ਨਤੀਜੇ ਵਿੱਚ ਸ਼ਾਮਿਲ ਹੋਣ ਵਾਲੇ ਫੀਲਡਾਂ ਦਾ ਬਾਬਤ ਦਿੰਦਾ ਹੈ。

ਇਹ ਪੈਰਾਮੀਟਰ ਚੋਣਵਾਂ ਹੈ, ਜੇਕਰ ਇਸ ਨੂੰ ਖਾਲੀ ਛੱਡਿਆ ਗਿਆ ਹੈ ਤਾਂ ਸਾਰੇ ਫੀਲਡਾਂ ਨੂੰ ਨਤੀਜੇ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾਵੇਗਾ।

ਉਦਾਹਰਣ

ਸਿਰਫ ਨਾਮ ਅਤੇ ਠੇਕੇ ਵਾਪਸ ਦੇਣਾ, ਨਾ ਹੀ _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)

ਉਦਾਹਰਣ ਚਲਾਓ

ਇੱਕ ਹੀ ਆਬਜੈਕਟ ਵਿੱਚ 0 ਅਤੇ 1 ਦੋਵੇਂ ਮੁੱਲ ਸਮਾਨਤਾ ਨਾਲ ਦਿੱਤੇ ਗਏ ਹਨ (ਹਾਲਾਂਕਿ ਇੱਕ ਫੀਲਡ _id ਫੀਲਡ ਹੋਵੇ ਤਾਂ ਨਹੀਂ)।ਜੇਕਰ 0 ਦਾ ਮੁੱਲ ਦਿੱਤਾ ਗਿਆ ਫੀਲਡ ਹੈ ਤਾਂ ਸਾਰੇ ਹੋਰ ਫੀਲਡਾਂ ਦਾ ਮੁੱਲ 1 ਹੋਵੇਗਾ ਅਤੇ ਵਿਲੱਖਣ ਵੀ ਹੋਵੇਗਾ:

ਉਦਾਹਰਣ

ਇਹ ਉਦਾਹਰਣ "address" ਨੂੰ ਨਾਲ ਨਹੀਂ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
  print(x)

ਉਦਾਹਰਣ ਚਲਾਓ

ਉਦਾਹਰਣ

ਜੇਕਰ ਇੱਕ ਹੀ ਆਬਜੈਕਟ ਵਿੱਚ 0 ਅਤੇ 1 ਦੋਵੇਂ ਮੁੱਲ ਸਮਾਨਤਾ ਨਾਲ ਦਿੱਤੇ ਗਏ ਹਨ ਤਾਂ ਤਰਕਸ਼ਾਲਾ ਹੋ ਸਕਦੀ ਹੈ (ਹਾਲਾਂਕਿ ਇੱਕ ਫੀਲਡ _id ਫੀਲਡ ਹੋਵੇ ਤਾਂ ਨਹੀਂ):

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)