MongoDB入门及问题总结

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安装及100报错

关于安装MongoDB的过程与错误48 100的解决方法

三. 备份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的简单使用

  1. 查看所有的数据库

    show dbs
    
  2. 切换到指定数据库

    use [指定数据库名]
    
  3. 向指定数据库插入一条数据

    db.users.insertOne(
       {
          name: "sue",
          age: 19,
          status: "P"
       }
    )
    
  4. 从指定数据库中查询一条数据

    db.collection.find( ,  )
    //示例,查询users文档中的全部数据
    db.users.find()
    //示例,查询users文档中status字段为A的数据
    db.users.find( { status: "A" } )
    
  5. 更新数据库中的数据

    //使用 $set 操作符更新 favorites.food 字段的值为 "pie" 并更新 type 字段的值为 3,
    
    //使用 $currentDate 操作符更新 lastModified 字段的值到当前日期
    db.users.updateOne(
       { "favorites.artist": "Picasso" },
    	   {
    	     $set: { "favorites.food": "pie", type: 3 },
    	     $currentDate: { lastModified: true }
    	   }
    )
    
  6. 删除数据

    //第一个status 字段等于"A"的文档
    db.users.deleteOne( { status: "D" } )
    
  7. 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)
    
  8. MongoDB数据库恢复

    语法:
    mongorestore -h dbhost -d dbname --dir dbdirectory 
    参数或名:
    -h: MongoDB所在服务器地址
    -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
    --dir: 备份数据所在位置,例如:/home/mongodump/itcast/
    --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!
    

MongoDB中文文档地址

你可能感兴趣的:(大数据与网络安全)