在MongoDB中使用Python进行复杂查询

2023-04-15 00:00:00 python mongodb 查询
  1. 查询所有数据

查询所有数据可以使用find方法,不传入任何参数即可。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

for x in mycol.find():
    print(x)
  1. 查询指定条件的数据

查询指定条件的数据可以使用find方法,并传入一个条件的字典作为参数。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

myquery = { "name": "John" }

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)
  1. 查询指定字段的数据

查询指定字段的数据可以使用find方法,并传入一个字段名称的字典作为参数,将指定字段设为1,其他字段设为0。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": "Highway 37" }

mydoc = mycol.find(myquery, { "_id": 0, "name": 1, "address": 1 })

for x in mydoc:
    print(x)
  1. 查询指定排序方式的数据

查询指定排序方式的数据可以使用find方法,并传入一个排序方式的字典作为参数,将指定字段设为1或-1,表示升序或降序。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

mydoc = mycol.find().sort("name")

for x in mydoc:
    print(x)
  1. 查询指定数量的数据

查询指定数量的数据可以使用find方法,并传入一个limit参数作为限制数量。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

mydoc = mycol.find().limit(5)

for x in mydoc:
    print(x)
  1. 查询指定范围的数据

查询指定范围的数据可以使用find方法,并传入一个skip和limit参数,分别表示跳过前面的数据和限制数据数量。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": "Highway 37" }

mydoc = mycol.find(myquery).skip(2).limit(5)

for x in mydoc:
    print(x)
  1. 查询指定正则表达式的数据

查询指定正则表达式的数据可以使用正则表达式作为查询条件。

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

myquery = { "address": { "$regex": "^S" } }

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)
  1. 查询指定日期范围的数据

查询指定日期范围的数据可以使用date对象作为查询条件。

import pymongo
import datetime

client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]

myquery = { "date": { "$gt": datetime.datetime(2021, 3, 1), "$lt": datetime.datetime(2021, 3, 31) } }

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

以上是MongoDB使用Python进行复杂查询的详细说明和代码演示,你可以根据需要进行相应的修改。

相关文章