MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB 是目前最流行的 NoSQL 数据库之一,MongoDB使用了BSON(类似 JSON)这种结构来存储数据和网络数据交换。本文主要介绍Python MongoDB 查询数据。

1、一般查询

在集合中查找文档时,可以使用查询对象过滤结果。

find()方法的第一个参数是查询对象,用于限制搜索。

例如:

查找地址为“ Park Lane 38”的文档:

import pymongo

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

myquery = { "address": "Park Lane 38" }

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

2、高级查询

要进行高级查询,可以在查询对象中使用修饰符作为值。

例如,查找“address”字段以字母“ S”开头的文档 或更高(按字母顺序),请使用“大于”修饰符: {"$gt": "S"}

例如:

查找地址以字母“S”或更高字母开头的文档:

import pymongo

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

myquery = { "address": { "$gt": "S" } }

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

3、使用正则表达式查询

还可以将正则表达式用作修饰符。

正则表达式只能用于查询字符串。

要仅查找“address”字段以字母“S”开头的文档,请使用常规 表达式{"$regex": "^S"}

例如:

查找address以字母“S”开头的文档:

import pymongo

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

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

mydoc = mycol.find(myquery)

for x in mydoc:
    print(x)

推荐文档