类比MySQL,理解MongoDB
进入MongoDB:mongo 本机IP地址://127.0.0.1 端口port:27017
redis端口port:6379 MySQL端口port:3306
退出MongoDB:exit
库
显示所有库:show dbs
使用/创建库:use 库名 若库不存在,则自动创建
查看在哪个数据库:db 在没有进入任何库的时候,默认在test里面,test为临时数据库
删除数据库:先切换到要删的数据库,再db.dropDatabase()
集合
创建集合: db.createCollection('student')
显示所有集合:show collections
删除集合:db.student.drop()返回True
进入数据库后,可不用创建集合,当插入一个不存在的集合时,会默认创建该集合:db.dada.insert({'name':'da','age':18})
文档
-->添加文档
***插入的括号内为文件
向集合中插入单条数据:db.dada.insert({'name':'yang','age':21})会自动创建_id,也可自己创建
insertone insertmany
向集合中插入多条数据,用中括号括起来:db.dada.insert([{'name':'lan','age':56,'_id':3},{'name':'hong','age':67},{'name':'huang','age':'34'},{'name':'cheng','age':23}])
-->查询数据:db.dada.find()
结果的格式化:db.dada.find().pretty()
带条件查询:db.dada.find({'name':'lan'}).pretty()
and的使用:直接用逗号分割即可db.dada.find({'name':'cheng','age':23})
or的使用:db,dada.find({'name':'hong',$or:[{'age':'34'},{'_id’:{$ne:1}}]})
大于$gt 大于等于$gte 小于$lt 小于等于$lte 不等于$ne 等于$eq
db.dada.find({'age':{$lte:40}}).pretty()找年龄小于等于40的
find中只能满足一个条件,如db,dada.find({'age':{$gt:20},'age':{$lt:30}})中,大于20则无效,后面的条件会覆盖前面的条件
-->修改文档:指定属性修改:db.dada.update({'name':'lan'},{$set:{'age':21}})-->只改第一条数据
多文档的替换:把名为hong的全改为名为hang
经典方法:db.dada.update({'name':'hong'},{$set:{'name':'hang'}},{multi:true})
新方法:db.dada.updateMany({'name':'hong'},{$set:{'name':'hang'}})
全文档替换,即将整个文档修改为提供的数据:db.dada.update({'name':'huang'},{'age':43}),这样name会消失,文档内只剩_id和age
-->删除文档:db.dada.remove({})空字典默认清空
db.dada.remove({'name':'huang'})这样删除所有名为huang的
若只删一条名为huang的,则db.dada.remove({'name':'huang'},{justOne:true})
remove() 方法并不会真正释放空间,要继续执行db.repairDatabase()来回收磁盘空间,当然退出MongoDB也可达到同样效果
db.dada.deleteOne({'name':'lan'})
db.dada.deleteMany({'name':'lan'})
python交互 pymongo pymysql redis
pip list
pip install pymongo -i https://pypi.douban.com/simple