Robo 3Tmongodb
01数据库
1.1 打开Robo官网ide
https://robomongo.org/学习
1.2 安装Robo 3Tui
安装Robo 3T 就可使用图形界面,方便操做MongoDB数据库,这个软件安装实在是太简单了,我就放几张图喔,就几张,哈哈哈!
spa
Robo 3T到此安装完毕,实在是太简单了。3d
Robo 3T 链接Win10的MongoDB,Linux也应该没问题的,我就不演示了!目前小安我专一Python操做MongoDB就好了,之后有机会写篇经过Python操做Linux的MongoDB。code
建立数据库
orm
数据库名字为ipart(爱情公寓),最近在看这部电视剧,疯狂刷1-5。blog
新建一张表,表名为performer(演员?简单点...说话的方式简单点),忽然想唱歌。
Come some up music ...
MongoDB 快速入门
02
3.1 插入—Insert
为何不是先讲查询?若是不先讲插入数据,哪来数据供查询呢!一切尽在个人掌握之中,嘿嘿!
3.1.1 InsertOne
顾名思义,插入一条数据。
db.getCollection('performer').insertOne({'name':'小安','sex':'man','age':19,'job':'不自由学习者','story':'爱情公寓的隔壁','best_wishes':'不清楚'})
3.1.2 InsertMany
顾名思义,一会儿插入N条数据。
db.getCollection('performer').insertMany([
{'name':'胡一菲','sex':'woman','age':23.5,'job':'弹一闪教师','story':'爱情公寓','best_wishes':'不清楚',},
{'name':'陈美嘉','sex':'woman','age':23,'job':'宠物店专员','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'唐悠悠','sex':'woman','age':22,'job':'专业演员','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'林宛瑜','sex':'woman','age':20,'job':'林氏才女','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'秦羽墨','sex':'woman','age':23,'job':'有钱人的追求者','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'诸葛大力','sex':'woman','age':19,'job':'最强大脑','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'咖喱酱','sex':'woman','age':19,'job':'吃货','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'张大炮','sex':'man','age':25,'job':'二营长的大炮','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'吕子乔','sex':'man','age':26,'job':'鼓励师','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'曾小贤','sex':'man','age':27,'job':'电台主持人','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'关谷神奇','sex':'man','age':27,'job':'漫画家','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'白开','sex':'man','age':100,'job':'小黑','best_wishes':'不清楚'},
{'name':'陆展博','sex':'man','age':21,'job':'外星人','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'张益达','sex':'man','age':29,'job':'倒霉的好人','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'斯内克','sex':'man','age':99,'story':'爱情公寓','best_wishes':'不清楚'},
{'name':'赵海棠','sex':'man','age':22,'job':'大文豪','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'张伟','sex':'man','age':26,'job':'律政先锋','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'小则又沐风','sex':'woman','age':21,'job':'吕子乔的虚幻情人','story':'爱情公寓','best_wishes':'不清楚'},
{'name':'吕小布','sex':'man','age':25,'job':'僚机吕布'}
])
3.2 查询—find
如下出现查询数据的截图,均来自每块代码的最后一条查询语句。
3.2.1 查找数据
# 查找所有数据
# 相似关系型数据库:" select * from performer "
db.getCollection('performer').find()
db.getCollection('performer').find({})
3.2.2 查询指定条件的数据
# 知足一个条件
# 相似关系型数据库:" select * from performer where age=20 "
db.getCollection('performer').find({'age':20)
# 同时知足两个条件
# 相似关系型数据库:" select * from performer where age=20 and sex='woman' "
db.getCollection('performer').find({'age':20,'sex':'woman'})
3.2.3 查询指定范围的数据
简单说下限定范围查询的"暗号"
大于等于 : gte
少于等于 : lte
大于 : gt
少于 : lt
不等于 : ne
等于 : 你猜猜看
通常格式为{列:值},若是在"值"里面再套个{},那么就能够用于限定范围。这真是懒出智慧啊,多简单啊!
# 查询年龄>=25的数据
# 相似关系型数据库:" select * from performer where age>=25 "
db.getCollection('performer').find({'age':{'$gte':25}})
# 查询21>年龄<25的数据
# 相似关系型数据库:" select * from performer where age>21 and age<25 "
db.getCollection('performer').find({'age':{'$lt':25,'$gt':21}})
# 查询21>年龄<25且名字不等于"小则又沐风"的数据
# 相似关系型数据库:" select * from performer where age>21 and age<25 and name not in ('小则又沐风') "
db.getCollection('performer').find({'age':{'$lt':25,'$gt':21},'name':{'$ne','小则又沐风'}})
3.2.4 查询限定列
({ })表明全部数据,若是在{ }旁边加个逗号,不就是说明"桥多码爹,还未结束",还有操做要进行。0代笔不显示指定列,1表明显示指定列。_id列默认是会显示出来的,虽然_id很是重要,但MongoDB内部知道就行。为了美观,固然能够经过 0 排除。
# 查询数据但不返回列story,age
# 相似关系型数据库:" select _id,name,sex,job,best_wishes from performer "
db.getCollection('performer').find({},{'story':0,'age':0})
# 查询数据只返回列 name, age,但不返回object_id
# 相似关系型数据库:" select name,age from performer "
db.getCollection('performer').find({},{'name':1,'age':1,'_id':0}).limit(5)
3.2.5 其余
count要在查询结果出来以后再.count,限定范围也是要在查询结果出来以后再.limit(行数),sort 列的值为1,则正序;值为-1,则倒序。
# 查询年龄大于21岁的个数
# 相似关系型数据库:" select count(*) from performer where age > 21 "
db.getCollection('performer').find({'age':{'$gt':21}}).count()
# 限定返回3条数据
# 相似关系型数据库:" select * from performer where rownmum <=3 "
db.getCollection('performer').find({}).limit(3)
# 对查询年龄少于24的结果进行倒序排序
# 相似关系型数据库:" select * from performer where age < 21 order by age desc "
db.getCollection('performer').find({'age':{'$lt':24}}).sort({'age':-1})
3.3 更新—update
MongoDB的更新非为updateOne和updateMany,目前还有新的功能,后续会在MongoDB高级用法的篇章说起,敬请期待。
3.3.1 updateOne
更新一条符合条件的数据,若是有多条数据符合,则从上往下开始更新,一次更新一条。
# 相似关系型数据库:" update performer set age = 100 where name ='张益达' "
db.getCollection('performer').updateOne({'name':'张益达'},{'$set':{'age':100}})
3.3.2 updateMany
一次性更新全部符合条件的数据。
# 相似关系型数据库:" update performer set story = '爱情公寓1-5',
best_wishes = '感谢陪伴,赞!' where story = '爱情公寓' "
db.getCollection('performer').updateMany({'story':'爱情公寓'},{'$set':{'story':'爱情公寓1-5','best_wishes':'感谢陪伴,赞!'}})
3.4 删除—delete
MongoDB的更新非为deleteOne和deleteMany。
3.4.1 deleteOne
删除一条符合条件的数据,若是有多条数据符合,则从上往下开始删除,一次删除一条。
# 相似关系型数据库:" delete from performer where name ='小安' "
db.getCollection('performer').deleteOne({'name':'小安'})
3.4.2 deleteMany
一次性删除全部符合条件(sex='man')的数据。
# 相似关系型数据库:" delete from performer where sex ='man' "
db.getCollection('performer').deleteMany({'sex':'man'})
Python链接MongoDB
03
照葫芦画瓢,IP加端口就能够了。
1from pymongo import MongoClient
2client = MongoClient('mongodb://127.0.0.1:27017')
3print(client)
4# MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True)
Python操做MongoDB
04