MongoDB使用入门及问题总结
最近学习Python爬虫开发时需要使用MongoDB数据库,为此做个使用入门的介绍和所遇问题的总结。
关于MongoDB
关于MongoDB的简介可以直接去官网查看,主要和传统的MySQL,SQL Server这些数据库的不同之处在于它是NoSql型数据库,即非关系型数据库。不同于MySQL中的数据都是一张张的关系表结构,MongoDB中的数据并不是以相互之间的关系表来存储的,所以这种数据的存储方式更适合复杂的爬虫环境。
参考文档:
MongoDB官网
MongoDB中文社区
MongoDB官方中文文档
MongoDB的入门视频教程
MongoDB的下载和安装
关于下载和安装直接按照官网的流程来即可
![官网下载社区版](C:\Users\75993\Pictures\Saved Pictures\study124.PNG)
选择对应操作系统的版本,下载下来直接安装即可。
MongoDB的遇到的问题
一 . 安装官方下载的msi安装的时候始终提示安装失败
解决办法:
在安装程序最后一步的时候不勾选左下角的mongodb-compass 选项
二. 配置MongoDB为window服务时失败
解决办法:
删除用于存放数据库的文件夹中的mongod.lock和storage.bson 文件,再重新启动
相关参考文章
三. 备份MongoDB时遇到的问题
问题描述:在使用mongodump -h dbhost -d dbname -o dbdirectory
命令备份数据库时始终提示以下错误:
Failed: error writing data for collection `study.sheet_tab_copy` to disk: error reading collection: Failed to parse: { find: "sheet_tab_copy", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "study" }. Unrecognized field 'snapshot'.
解决办法:在使用的命令后边多加一个参数--forceTableScan
,意思是force a table scan (do not use $snapshot)
,即使用命令为:mongodump -h dbhost -d dbname -o dbdirectory --forceTableScan
即可
MongoDB的简单使用
-
查看所有的数据库
show dbs
-
切换到指定数据库
use [指定数据库名]
-
向指定数据库插入一条数据
db.users.insertOne( { name: "sue", age: 19, status: "P" } )
-
从指定数据库中查询一条数据
db.collection.find( <query filter>, <projection> ) //示例,查询users文档中的全部数据 db.users.find() //示例,查询users文档中status字段为A的数据 db.users.find( { status: "A" } )
-
更新数据库中的数据
//使用 $set 操作符更新 favorites.food 字段的值为 "pie" 并更新 type 字段的值为 3, //使用 $currentDate 操作符更新 lastModified 字段的值到当前日期 db.users.updateOne( { "favorites.artist": "Picasso" }, { $set: { "favorites.food": "pie", type: 3 }, $currentDate: { lastModified: true } } )
-
删除数据
//第一个status 字段等于"A"的文档 db.users.deleteOne( { status: "D" } )
-
MongoDB数据库备份
语法: mongodump -h dbhost -d dbname -o dbdirectory 参数说明: -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017 -d: 需要备份的数据库实例,例如:test -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。 --forceTableScan:强制扫描整个表(不使用快照)force a table scan (do not use $snapshot)
-
MongoDB数据库恢复
语法: mongorestore -h dbhost -d dbname --dir dbdirectory 参数或名: -h: MongoDB所在服务器地址 -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2 --dir: 备份数据所在位置,例如:/home/mongodump/itcast/ --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!