MongoDB是一种可扩展的敏捷NoSQL数据库,其中的Mongo源自单词humongous。MongoDB基于NoSQL文档存储模型;在这种模型中,数据对象被存储为集合中的文档,而不是传统关系型数据库中的行和列。文档是以二进制JSON(BSON)对象
的方式存储的。
MongoDB是面向文档的,数据在数据库中的存储格式与您要在服务器端脚本和客户端脚本中处理的格式非常接近。这避免了将数据在行和对象之间进行转换
MongoDB是市面上性能最高的数据库之一。在当今世界,很多用户都与网站交互,因此拥有能够支持庞大流量的后端至关重要
MongoDB的复制模型使其很容易保持高可用性,同时能够提供高性能和高可扩展性
MongoDB的结构使得能够将数据分布到多台服务器,从而轻松地实现横向扩展
MongoDB将数据存储为对象,而不使用SQL字符串,因此对SQL注入攻击(通过浏览器在Web表单中输入SQL语句,从而威胁DB的安全)免疫
进入:mongo
退出:exit
1、显示所有库:show dbs # 数据库没有内容,将不会显示
2、切换数据库:use student # 不存在则创建
3、查看在哪个数据库:db # 默认会自动进入test库
4、删除数据库:db.dropDatabase()
1、创建集合:db.createCollection('集合名字')
2、显示所有集合:show collections
3、删除集合:db.集合名字.drop()
# 自己删除自己
db.dropDatabase() # 删除后要退出mongodb / 切换数据库
1、插入单条:db.集合名.insert(document) # 官方主推:insertOne
eg:db.student.insert({name:'beidou',age:18})
2、插入多条:db.集合名.insert([{},{}]) # insertMany
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}})
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 xxx
pip install xxx -i http://mirrors.aliyun.com/pypi/simple/
pip install xxx -i http://pypi.douban.com/simple
pip install pymongo
import pymongo
client = pymongo.MongoClient()
db = client['test'] # 跟上数据库名
collection = db['student'] # 指定集合名
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"})