MongoDB入门教程

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的更新非为deleteOnedeleteMany


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

相关文章
相关标签/搜索