Python爬虫、数据清洗与可视化-9 - mongo
一、mongo安装
1.下载
mongodb 官网下载地址(可能下载速度会很慢)
https://www.mongodb.com/download-center/community
mongodb-win32-x86_64-2008plus-ssl-4.0.10-signed 百度网盘地址
链接:https://pan.baidu.com/s/1rdh4Jn2LTkWoD7IItWpebg
提取码:34r2
安装时注意:目录不能带有中文
2.服务配置:
2.1.手动创建文件夹
d:\Python\MongoDB\data\db
d:\Python\MongoDB\data\log
分别用来安装db和日志文件,在log文件夹下创建一个日志文件MongoDB.log,即
C:\Program Files\MongoDB\data\log\MongoDB.log
2.2.
在window中,在搜索框输入cmd后,在cmd上点击右键,用管理员身份运行。
进入目录:D:\python\MongoDB\Server\3.4\bin
运行 mongod -dbpath “d:\Python\MongoDB\data\db”
2.3.添加服务
管理员身份运行cmd
添加服务:
mongod --dbpath “d:\python\MongoDB\data\db” --logpath “d:\python\MongoDB\data\log\MongoDB.log” --install --serviceName “MongoDB”
启动服务net start MongoDB
停止服务net stop MongoDB
删除服务
mongod --dbpath “d:\python\MongoDB\data\db” --logpath “d:\python\MongoDB\data\log\MongoDB.log” --remove --serviceName “MongoDB”
二、创建数据库
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")#使用 MongoClient 对象,并且指定连接的 URL 地址和要创建的数据库名。
mydb = myclient["runoobdb"] #创建的数据库 runoobdb
mycol = mydb["sites"]#创建一个集合
注意: 在 MongoDB 中,数据库只有在内容插入后才会创建! 就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。
注意: 集合只有在内容插入后才会创建
三、插入集合
集合中插入文档使用 insert_one() 方法,该方法的第一参数是字典 name => value 对。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]
mycol = mydb["sites"]
mydict = { "name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com" }
x = mycol.insert_one(mydict)
print(x)
print(x.inserted_id)# inserted_id 属性
四、查询
查询一条数据
我们可以使用 find_one() 方法来查询集合中的一条数据。
x = mycol.find_one()#查询 sites 文档中的第一条数据:
for x in mycol.find():#查找 sites 集合中的所有数据:
print(x)
for x in mycol.find({},{ "_id": 0, "name": 1, "alexa": 1 }):#查询指定字段的数据,将要返回的字段对应值设置为 1。
print(x)
mydoc = mycol.find(myquery)#查找 name 字段为 "RUNOOB" 的数据:
for x in mydoc:
print(x)
五、修改
Mongodb 修改文档
以下使用 update_one() 方法修改匹配到的第一条记录。该方法第一个参数为查询的条件,第二个参数为要修改的字段。
myquery = { "alexa": "10000" }
newvalues = { "$set": { "alexa": "12345" } }
mycol.update_one(myquery, newvalues)#第一个参数为查询的条件,第二个参数为要修改的字段。
以下update_many()匹配到所有记录的 alexa 字段修改为 123
x = mycol.update_many(myquery, newvalues)#第一个参数为查询的条件,第二个参数为要修改的字段。
六、排序
sort() 方法可以指定升序或降序排序,第一个参数为要排序的字段,第二个字段指定排序规则,1 为升序,-1 为降序,默认为升序。
mydoc = mycol.find().sort("alexa")#对字段 alexa 按升序排序:
mydoc = mycol.find().sort("alexa", -1)#对字段 alexa 按降序排序:
七、删除
delete_one() 方法删除一个文档,该方法第一个参数为查询对象,指定要删除哪些数据。
myquery = { "name": "Taobao" }
mycol.delete_one(myquery) #删除 name 字段值为 "Taobao" 的文档
delete_many() 方法删除多个文档,该方法第一个参数为查询对象,指定要删除哪些数据。
myquery = { "name": {"$regex": "^F"} }
x = mycol.delete_many(myquery)#删除所有 name 字段中以 F 开头的文档:
x = mycol.delete_many({})#delete_many() 方法如果传入的是一个空的查询对象,则会删除集合中的所有文档:
drop() 方法来删除一个集合。
mycol.drop()#以下实例删除了 customers 集合
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)