ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

文档型数据库-1-[MongoDB]在windows中的安装及python操作

2022-01-20 21:04:52  阅读:203  来源: 互联网

标签:windows MongoDB db collection python client result id


参考Python操作MongoDB看这一篇就够了

1 安装MongoDB

mongodb的windows下载地址
MongoDB 提供了预编译二进制包。

(1)下载 .msi 文件,下载后双击该文件,按操作提示安装即可。
安装过程中,你可以通过点击 “Custom(自定义)” 按钮来设置你的安装目录。
D:\MongoDB\Server\5.0\。
配置环境变量D:\MongoDB\Server\5.0\bin。
(2)下一步安装 “install mongoDB compass” 不勾选(当然你也可以选择安装它,可能需要更久的安装时间),MongoDB Compass 是一个图形界面管理工具,我们可以在后面自己到官网下载安装。
(3)创建目录
MongoDB 将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下 (如: C:\ 或者 D:\ 等 )。
D:\data\db。
(4)命令行下运行 MongoDB 服务器
CMD>mongod --dbpath D:\data\db
(5)连接MongoDB
CMD>mongo

2 配置 MongoDB 服务

3 python操作mongodb

请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库。

3.1 连接信息

import pymongo
# (1)连接mongodb
#client = pymongo.MongoClient(host='localhost',port=27017)
client = pymongo.MongoClient('mongodb://localhost:27017/')
# (2)指定数据库
#MongoDB中可以建立多个数据库
#db = client.test # 方式一
db = client['test']
# (3)指定集合
# 每个数据库又包含许多集合collection,类似于关系型数据库中的表。
#collection = db.students # 方式一
collection = db['students']
print(collection)

官方推荐使用insert_one()和insert_many()方法来分别插入单条记录和多条记录。

3.2 插入一条

import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合

# 插入一条
student = {
    'id': '20170101',
    'name': 'Jordan',
    'age': 20,
    'gender': 'male'
}
result = collection.insert_one(student)
print(result)
print(result.inserted_id)

输出如下
<pymongo.results.InsertOneResult object at 0x000001EE321E7348>
6194bd1c4688ef8efc735c66

3.3 插入多条

import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合

# 插入多条
student1 = {
    'id': '20170102',
    'name': 'lucy',
    'age': 20,
    'gender': 'male'
}

student2 = {
    'id': '20170203',
    'name': 'Mike',
    'age': 21,
    'gender': 'male'
}

result = collection.insert_many([student1, student2])
print(result)
print(result.inserted_ids)

输出如下
<pymongo.results.InsertManyResult object at 0x000001F5161B0448>
[ObjectId(‘6194bd84c61333642af39309’), ObjectId(‘6194bd84c61333642af3930a’)]

3.4 查询一条

插入数据后,我们可以利用find_one()或find()方法进行查询,其中find_one()查询得到的是单个结果,find()则返回一个生成器对象。

import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合

result = collection.find_one({'name': 'Mike'})
print(type(result))
print(result)

输出如下
<class ‘dict’>
{’_id’: ObjectId(‘6194bd84c61333642af3930a’), ‘id’: ‘20170203’, ‘name’: ‘Mike’, ‘age’: 21, ‘gender’: ‘male’}
可以发现,它多了_id属性,这就是MongoDB在插入过程中自动添加的。

3.4 查询多条

import pymongo
client = pymongo.MongoClient(host='localhost',port=27017) # 连接
db = client.test # 指定数据库
collection = db.students # 指定集合

results = collection.find({'age': 20})
print(type(results))
print(results)
for result in results:
    print(result)

输出如下
<class ‘pymongo.cursor.Cursor’>
<pymongo.cursor.Cursor object at 0x000001937FBC6860>
{’_id’: ObjectId(‘6194bd1c4688ef8efc735c66’), ‘id’: ‘20170101’, ‘name’: ‘Jordan’, ‘age’: 20, ‘gender’: ‘male’}
{’_id’: ObjectId(‘6194bd84c61333642af39309’), ‘id’: ‘20170102’, ‘name’: ‘lucy’, ‘age’: 20, ‘gender’: ‘male’}

返回结果是Cursor类型,它相当于一个生成器,我们需要遍历取到所有的结果,其中每个结果都是字典类型。

标签:windows,MongoDB,db,collection,python,client,result,id
来源: https://blog.csdn.net/qq_20466211/article/details/121379327

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有