简介
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
安装
安装:
sudo apt-get install mongodb
测试:
查看进程:
ps -ef | greop mongo
客户端连接:
mongo
端口:27017
MySQL与MongoDB对比
-
MySQL MongoDB database db(数据库) table collection(集合) 一条数据 document(文档)
db操作
查看所有数据库:
show dbs
查看当前数据库:
db 或者 db.getName()
创建或切换数据库:
use python1801
若使用的数据库不存在则创建然后切换,存在则切换
新建的数据库中没有数据时,
show dbs
显示不出来
删除当前使用数据库:
db.dropDatabase()
退出:
exit 或 quit()
查看帮助:
help
collection操作
查看当前数据库的所有集合:
show collections
创建集合:
单纯创建:
db.createCollection('user')
,创建一个空集合按需创建:
db.stu.insert({name:'lufei',age:22})
,直接使用不存在的集合,并且插入数据
删除集合:
db.stu.drop()
document操作
增加文档:
insert
# 插入一条数据 db.user.insert({name:'hao',age:23,height:175,isDelete:0}) # 插入多条数据 db.user.insert([{name:'jiang',age:25,height:165,isDelete:0},{name:'yang',age:26,height:178,isDelete:0}])
save
# 不指定_id字段,功能等价于insert db.user.save({name:'binge',age:24,height:174,isDelete:0}) # 指定_id字段,相当于更新操作 db.user.save({_id:ObjectId("5ad9600ad43bd178471b852f"),name:'binge',age:30,height:174,isDelete:0})
更新文档
save:保存文档时,需要指定_id字段
update:
db.集合.update(query,update,{upsert:<boolean>, multi:<boolean>})
db.user.update({isDelete:0}, {$set:{isDelete:1}}, {multi:true})
query:表示查询条件
update:表示更新设置,
$set:表示设置
$inc:表示增加
upsert:更新的查询结果不存在,是否作为新数据插入
multi:符合条件的数据是否全部更新,true表示全部更新,flase表示只更新一条
删除文档:
remove:
db.集合.remove(query, {justOne:<boolean>})
db.user.remove({name:'binge'}) # 默认删除所有 db.user.remove({age:26},{justOne:true}) # 只删除一条
查询文档:
db.user.find()
格式:
db.集合.find(query,{key1:0,key2:0})
说明:
query表示查询条件,
第二个参数值为1表示要显示的字段,为0表示不显示的字段
选择字段或排除字段只能选择一种情况,要么都选择,要么都排除
pretty():格式化显示文档(以字典形式)
db.user.find().pretty()
findOne():查询一条文档
db.user.findOne({isDelete:0})
查询条件操作符
大于:$gt
格式:
db.集合.find({<key>:{$gt:<value>}})
示例:
db.user.find({height:{$gt:166}})
大于等于:$gte
小于:$lt
小于等于:$lte
等于:不写符号就是等于
多个条件:
db.user.find({height:{$gt:160,$lt:170}})
统计:count(),示例:
db.user.find().count()
正则:
db.集合.find({<key>:/正则表达式/})
条件合并and/or
and:表示并且
格式:
db.集合.find({条件1,条件2})
示例:
db.user.find({isDelete:0, height:{$gt:170}})
or:表示或者
格式:
db.集合.find({$or:[{条件1},{条件2}]})
示例:
db.user.find({$or:[{height:{$gt:175}},{height:{$lt:170}}]})
限制结果集
限制:limit()
示例:
db.user.find().limit(1)
跳过:skip()
示例:
db.user.find().skip(1).limit(1)
结果集排序:
格式:
db.集合.find().sort({<key>:1/-1})
说明:1表示升序,-1表示降序
示例:
db.user.find().sort({height:-1})
python操作mongodb
安装扩展库:
pip3 insatll pymongo
见demo