MongoDB介绍

MongoDB介绍:

MongoDB是一种可扩展的敏捷NoSQL数据库。MongoDB 将数据存储为一个文档,数据结构由键值对组成。

MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

面向文档: 

MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。 

高性能:

MongoDB是市面上性能最高的数据库之一。在当今世界,很多用户都与网站交互,因此拥有能够支持庞大流量的后端至关重要

高可用性:

MongoDB的复制模型使其很容易保持高可用性,同时能够提供高性能和高可扩展性。

高可扩展性:

MongoDB的结构使得能够将数据分布到多台服务器,从而轻松地实现横向扩展

对SQL注入攻击免疫:

MongoDB将数据存储为对象,而不使用SQL字符串,因此对SQL注入攻击(通过浏览器在Web表单中输入SQL语句,从而威胁DB的安全)免疫 。

集合与文档的介绍:

MySQL

MongoDB

数据库

数据库

集合

文档

数据库(database)

数据库(database)

表(table)

集合(collection)

行  

文档  

 库与集合操作:

库级基本操作:

进入:mongo                 退出:exit 

切换/进入数据库 use 库名   (当数据库不存在时会自动创建)

显示所有数据库

show dbs

查看在哪个数据库

db

默认会自动进入 test 库

 db.dropDatabase() 需要先进入库才能对应删除

use xb (如果不存在创建一个新的库)

但是如果紧接着用 use xb  则发现 xb 不在默认的库中(因为没有数据存储,不会显示)

现在创建集合:

>db.createCollection("xiaobai")

现在 show dbs ,库就会被显示出来

>db.dropDatabase()

这是删除库 xb 

集合操作语句:

创建集合:

db.createCollection('集合名字')

显示所有集合:

show collections

删除集合:

db.集合名字.drop()

默认创建:

进入数据库之后,可以不用创建集合,当插入一个不存在的文档时,会自动创建集合

文档操作:

01 插入单条:

db.集合名.insert(document)

> db.student.insert({ "name":"xiaobai" , "age"":18 })
# 直接插入数据,当文档不存在时,进行创建

02 插入多条:

db.student.insert([document1,document2.....])

> db.student.insert([{"name":"dongli","age":38},{"name":"qianqian","age":28}])

03 最新方法:

插入单条:insertOne

插入多条:inseryMany

查询文档:

db.集合名字.find()

查询所有内容

db.集合名字.find().pretty()

格式化显示

db.集合名字.find(条件)

条件查询

MongoDB介绍_第1张图片

 条件查询:

操作符

描述

解释

$gt

大于

greater than

$gte

大于等于

gt equal

$lt

小于

less than

$lte

小于等于

lt equal

$ne

不等于

not equal

$eq

等于

equal

逻辑查询:

and:

db.库名.find({key1: value1, key2: value2})

or:

db.库名.find({$or: [ {key1: value1}, {key2: value2} ]})

 修改文档:

db.集合名字.update(, {multi:})

db.集合.update(查询条件,更新的字段)

更新满足条件的第一个文档,将整个文档修改为提供的数据

db.集合.update(查询条件, {$set:更新的字段})

指定字段修改

db.集合.update(查询条件,更新的字段,{multi:true})

修改所有满足条件的文档

db.集合.updateOne(查询条件,{$set:更新的字段})

修改单条

db.集合.updateMany(查询条件,{$set:更新的字段})

修改多条

删除文档:

删除一条数据:

db.集合名.remove(查询条件,(justOne:ture))

删除语句:

db.集合名称.remove(查询条件)

删除是会默认删除所有符合的文档

删除所有文档:

db.student.remove({})

remove() 方法 并不会真正释放空间 需要继续执行 db.repairDatabase() 来回收磁盘空间 db.repairDatabase()

新方法:

db.集合名称.deleteOne(查询条件)

db.集合名称.deleteMany(查询条件)

Python交互

安装模块:

pip install pymongo

连接数据库:

import pymongo

client = pymongo.MongoClient()

db = client["test"]  # 跟上数据库名

collection = db["student"] # 指定集合名             

增删改查:

添加   insert_one insert_many

collection.insert_one({"name":'kongshan', "age": 12})

查找   find find_one

collection.find() # 查找一个

改     update_one update_many

collection.update_one({"name":"kongshan"}, {"$set":{"age": 20}})

删除  collection.delete_one({"name":"kongshan"})

你可能感兴趣的:(mongodb,数据库,nosql)