python操作MongoDB

1.在本地环境安装MongoDB

2.安装pymongo驱动 pip install pymongo

3.python 操作 mongodb

1)添加数据

import pymongo

# 创建集合
my_client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
my_db = my_client["nba"]
my_col = my_db["players"]

# 创建插入文档
data = {"name": "James", "club": "Lakers", "nickname": "King"}

# 执行插入命令
rest = my_col.insert_one(data)
print(rest)

在终端执行代码后:

<pymongo.results.InsertOneResult object at 0x02BACD50>

插入多条文档:

import pymongo

# 创建集合
my_client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
my_db = my_client["nba"]
my_col = my_db["players"]

# 创建多条文档
data = [{"name": "James", "club": "Lakers", "nickname": "皇帝"},
        {"name": "Curry", "club": "Warriors", "nickname": "小学生"},
        {"name": "Durant", "club": "Warriors", "nickname": "死神"},
        {"name": "Westbrook", "club": "Thunder", "nickname": "神龟"},
]


# 执行多条文档插入命令
rest = my_col.insert_many(data)
print(rest)

2)查询数据:

import pymongo

# 创建集合
my_client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
my_db = my_client["nba"]
my_col = my_db["players"]

# 查询单条数据并打印
rest = my_col.find_one()
print(rest)

查询结果为:

{'_id': ObjectId('5c08d03ef1a49227e8239d25'), 'name': 'James', 'club': 'Lakers',
 'nickname': '皇帝'}
import pymongo

# 创建集合
my_client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
my_db = my_client["nba"]
my_col = my_db["players"]

# 查询所有数据并打印
rest = my_col.find()
for item in rest:
    print(item)

查询结果为:

{'_id': ObjectId('5c08d03ef1a49227e8239d25'), 'name': 'James', 'club': 'Lakers',
 'nickname': '皇帝'}
{'_id': ObjectId('5c08d03ef1a49227e8239d26'), 'name': 'Curry', 'club': 'Warriors
', 'nickname': '小学生'}
{'_id': ObjectId('5c08d03ef1a49227e8239d27'), 'name': 'Durant', 'club': 'Warrior
s', 'nickname': '死神'}
{'_id': ObjectId('5c08d03ef1a49227e8239d28'), 'name': 'Westbrook', 'club': 'Thun
der', 'nickname': '神龟'}

查询指定字段的数据:

import pymongo

# 创建集合
my_client = pymongo.MongoClient("mongodb://127.0.0.1:27017")
my_db = my_client["nba"]
my_col = my_db["players"]

# 查询所有数据并打印
rest = my_col.find({}, {"_id" :0, "name":1, "club":1, "nick_name":1})
for item in rest:
    print(item)

查询返回结果为:

{'name': 'James', 'club': 'Lakers'}
{'name': 'Curry', 'club': 'Warriors'}
{'name': 'Durant', 'club': 'Warriors'}
{'name': 'Westbrook', 'club': 'Thunder'}

注意: 除了 _id  不能在一个对象中同时指定 0 和 1,如果你设置了一个字段为 0,则其他都为 1,反之亦然。

原文地址:https://www.cnblogs.com/m-chen/p/10077101.html