MongoDB介绍,库和集合、文档等操作

文章目录

    • 一、MongoDB介绍
      • 1、面向文档
      • 2、高性能
      • 3、高可用性
      • 4、高可扩展性
      • 5、对SQL注入攻击免疫
    • 二、库和集合操作
      • 1、进入和退出(交互模式)
      • 2、库操作语句
      • 3、集合操作语句
      • 3、删除数据库
    • 三、文档操作
      • 1、插入
      • 2、查询文档
      • 3、修改文档
        • 下载 pip install
      • 4、python交互
        • 1、安装模块
        • 2、连接数据库
        • 3、增删改查

一、MongoDB介绍

MongoDB是一种可扩展的敏捷NoSQL数据库,其中的Mongo源自单词humongous。MongoDB基于NoSQL文档存储模型;在这种模型中,数据对象被存储为集合中的文档,而不是传统关系型数据库中的行和列。文档是以二进制JSON(BSON)对象的方式存储的。

1、面向文档

MongoDB是面向文档的,数据在数据库中的存储格式与您要在服务器端脚本和客户端脚本中处理的格式非常接近。这避免了将数据在行和对象之间进行转换

2、高性能

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

3、高可用性

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

4、高可扩展性

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

5、对SQL注入攻击免疫

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

MongoDB介绍,库和集合、文档等操作_第1张图片

二、库和集合操作

1、进入和退出(交互模式)

进入:mongo
退出:exit

2、库操作语句

1、显示所有库:show dbs	# 数据库没有内容,将不会显示
2、切换数据库:use student  # 不存在则创建
3、查看在哪个数据库:db	# 默认会自动进入test库
4、删除数据库:db.dropDatabase()

3、集合操作语句

1、创建集合:db.createCollection('集合名字')
2、显示所有集合:show collections
3、删除集合:db.集合名字.drop()

3、删除数据库

# 自己删除自己
db.dropDatabase()	# 删除后要退出mongodb / 切换数据库

三、文档操作

1、插入

1、插入单条:db.集合名.insert(document)   # 官方主推:insertOne
eg:db.student.insert({name:'beidou',age:18})
2、插入多条:db.集合名.insert([{},{}])	# insertMany

2、查询文档

1、find
db.集合名.find()	# 查询所有内容
db.集合名.find().pretty()	# 格式化显示出来
db.集合名.find({name:'budong'}).pretty()	# 带条件查询

2、条件查询 and  or
【and】:直接用逗号分割即可
eg:db.集合名.find({name:'budong',age:'18'})
【or】:{'$or':[{key1:value1},{key2,value2}]}
eg:db.集合名.find({'$or':[{name:'budong'},{age:'18'}]})
eg:db.集合名.find({name:'beidou',$or:[{'name':'kongshan'},{'_id':{$ne:1}}]})
eg:db.集合名.find({'age':{$gte:20}})

MongoDB介绍,库和集合、文档等操作_第2张图片

3、修改文档

1、修改数据
db.stus.update({'name':'test'},{'name':'jingluo'})  # 只剩下名字
db.stus.update({'name':'test'},{'name':'jingluo','sex':'nan'})

2、指定属性修改
db.stus.update({'name':'jingluo'},{"$set":{'age':39}})

3、修改全局
db.stus.update({'age':39},{'$set':{'age':40,'sex':'nan'}})
db.stus.update({'name':{'$ne':'beidou'}},{'$set':{'age':20}}) # 名字不等于beidou的,年龄修改为20岁

4、删除(符合条件的)
db.stus.remove({'age':18})
删除一条:db.stus.remove({"name":'beidou'},{justOne:true})
删除所有文档:db.stus.remove({})
真正删除回收磁盘空间:db.repairDatabase()
下载 pip install
pip install xxx
pip install xxx -i http://mirrors.aliyun.com/pypi/simple/
pip install xxx -i http://pypi.douban.com/simple

4、python交互

1、安装模块
pip install pymongo
2、连接数据库
import pymongo
client = pymongo.MongoClient()
db = client['test']			# 跟上数据库名
collection = db['student']   # 指定集合名
3、增删改查
1、添加  insert_one insert_many
collection.insert_one({"name":'kongshan', "age": 12})

2、查找 find find_one
collection.find() # 查找一个

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

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

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