MongoDB数据库操作

什么是MongoDB数据库

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。(百度百科)
在处理海量数据的时候会比MySQL更有优势。爬虫如果上了一个量级,可能就会比较推荐使用MongoDB。

MongoDB的安装

vim /etc/yum.repos.d/mongodb-org-3.6.repo

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

yum install MongoDB

MongoDB基本配置

创建配置文件:mongod.cfg

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /home/kiosk/Desktop/data/mongod.log

# Where and how to store data.
storage:
  dbPath: /home/kiosk/Desktop/data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces.


#security:

logpath是日志的路径。dbpath是mongodb数据库的存储路径,port是mongodb的端口。

服务的启动:

mongod   --config   cfg配置文件所在的路径。

SQL术语与MongoDB术语对比

SQL术语MongoDB术语解释
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
joinsjoins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

MongoDB三元素:数据库、集合、文档。
文档(document):就是关系型数据库中的一行。文档是一个对象,由键值对构成,是json的扩展形式:

{'name':'coffee','age':'18'}

集合(collection):就是关系型数据库中的表。可以存储多个文档,结构可以不固定。如可以存储如下文档在一个集合中:

{'name':'coffee','age':'18'}
{'title':'floating','price':20}
{'name':'redhat','gender':'1'}

MongoDB基本操作命令:

1.db:查看当前的数据库。
2.show dbs:查看所有的数据库。
3.use 数据库名:切换数据库。如果数据库不存在,则创建一个。(创建完成后需要插入数据库才算创建成功)
4.db.dropDatabase():删除当前指向的数据库。
5.db.集合名.insert(value):添加数据到指定的集合中。
6.db.集合名.find():从指定的集合中查找数据。
更多命令请见:http://www.runoob.com/mongodb/mongodb-tutorial.html

Python操作MongoDB:

首先下载pymongo:

pip install pymongo

怎么连接MongoDB:

import pymongo
#获取连接的对象
client = pymongo.MongoClient('127.0.0.1',port=27017)
#获取数据库
db = client.user
#获取集合(表)
collection = db.qa
#插入一条数据到集合中
collection.insert_one({
    'username':'coffee',
    'password':'hello'
})

在这里插入图片描述

数据类型
类型说明
Object ID文档ID
String字符串,必须是有效地UTF-8
Boolean存储一个布尔值
Integer整数可以是32位或64位,取绝于服务器
Double存储浮点值
Arrrays数组或列表,多个值存储到一个健
Object用于嵌入式文档,即一个值为一个文档
Null存储Null值
Timestamp时间戳,表示从1970-1-1到现在的总秒数
Date存储当前日期或时间地UNIX时间格式
操作MongoDB:

1.insert_one:加入一条文档数据到集合中。

collection.insert_one({
    'username':'coffee',
    'password':'hello'
})

2.insert_many:加入多条文档数据到集合中。

collection.insert_many([
     {
         "username":'abc',
         'password':'111111'
     },
     {
         "username":'bbb',
         'password':'222222'
     },
 ])

3.find_one:查找一条文档对象。

result = collection.find_one()
 print(result)
 # 或者是指定条件
 result = collection.find_one({"username":"abc"})
 print(result)

4.update_one:更新一条文档对象。

 collection.update_one({"username":"abc"},{"$set":{"username":"aaa"}})

5.update_many:更新多条文档对象。

 collection.update_many({"username":"abc"},{"$set":{"username":"aaa"}})

6.delete_one:删除一条文档对象。

 collection.delete_one({"username":"abc"})

7.delete_many:删除多条文档对象。

 collection.delete_one({"username":"abc"})
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页