mongodb安装和命令行基本操作

Mongodb

今天学习了一波mongodb,了解了一下三大家族,然后主要学习了mongodb的操作。


1)安装mongodb

跟谁网上的教程安装方法如下:

系统Ubuntu16.04

sudoapt-get autoremove

sudoapt-get install mongodb


然后等待一会就安装好了


2mongodb的基本操作:

命令行进入就一条命令:

mongo







看到这就说明成功进入了,版本是2.6.10


接着我们可以看一下它里面有什么表

>show dbs

看到下面有三个表









这里注意一下,我们装这个mongodb的时候它会默认吃掉我们3G的空间,非常霸道的,之前我有个师兄就在这里踩了很久的坑,但是我们是有方法发信息给它来进行一个小型的,也就是让他吃少一点。


现在我们新建一个库,看下面这个我们用use新建一个库,如果数据库里面没有这个库,他就会新建。


>use little_quincy

switchedto db little_quincy


有一点就是如果这个库里面没有东西,我们去看的时候他是不显示这个库的。

然后我们新建集合,在mongodb里面我们一般都是用collection来表示表的,也就是集合


>db.createCollection("little_quincy");

{"ok" : 1 }


我们新建一个表,看下面的返回值证明成功了


来看看这个表

>show collections;

little_quincy

system.indexes

可以看到表已经有了,system是索引。



看第一个操作,插入:

>db.little_quincy.insert({"name":"quincy"});

WriteResult({"nInserted" : 1 })


成功插入了。


然后我们在来几波骚操作


>db.little_quincy.find() – 查找操作,可以看看表里面都有点啥

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }


>db.little_quincy.find().pretty();

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" } –美丽的查找操作,现在是看不出哪比较美了,但是数据多了,pretty会增加一个换行,使得它看着很美


>db.little_quincy.insert({"id":"quincy","name":"quincy"});– 在插入点数据,

WriteResult({"nInserted" : 1 })


>db.little_quincy.find()

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" } –MongoDB从一开始就设计用来作为分布式数据库,处理多个节点是一个核心要求。ObjectId类型在分片环境中容易生成得多。

{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}



我们可以看到_id也可以是别的值

>db.little_quincy.insert({"_id":"quincy","name":"quincy"});

WriteResult({"nInserted" : 1 })


>db.little_quincy.find()

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }

{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}

{"_id" : "quincy", "name" : "quincy"}



有没有注意到,这个数据库没有定义类型,没有限制多少想插就插,最后按key->来实现查找


keyvalue查找

>db.little_quincy.find({"name":"quincy"});

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }

{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}

{"_id" : "quincy", "name" : "quincy"}



下面这个操作是找出年龄小于23的人,先插入年龄

>db.little_quincy.insert({"age":22,"name":"quincy"});

WriteResult({"nInserted" : 1 })


>db.little_quincy.find({"age":{$lt:23}});

{"_id" : ObjectId("5916b58264a2a21938b93dcd"),"age" : 22, "name" : "quincy" }



这个操作是按正则去寻找模糊匹配

>db.little_quincy.find({"name":/quincy/});

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }

{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}

{"_id" : "quincy", "name" : "quincy"}

{"_id" : ObjectId("5916b58264a2a21938b93dcd"),"age" : 22, "name" : "quincy" }




基础操作之更新


>db.little_quincy.update({"name":"quincy"},{$set:{"age":23}},false,false);

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })


一定要注意不同的括号,容易踩坑



基础之移除操作

按照键值关系移除

>db.little_quincy.remove({"_id":"quincy"})

WriteResult({"nRemoved" : 1 })


结果:

>db.little_quincy.find();

{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}

{"_id" : ObjectId("5916b58264a2a21938b93dcd"),"age" : 22, "name" : "quincy" }

{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy", "age" : 23 }



删表

>db.little_quincy.drop();

true


删库

>db.dropDatabase();

{"dropped" : "little_quincy", "ok" : 1 }


最终结果:

>show dbs;

admin (empty)

local 0.078GB

test 0.078GB





练习时间:

>use shihao

switchedto db shihao


>show collections;


>db.creatCollection("xiaohao");

2017-05-13T15:47:03.888+0800TypeError: Property 'creatCollection' of object shihao is not afunction


>db.createCollection("xiaohao");

{"ok" : 1 }


>db.shihao.insert({"name":"chenlebo","age":20,"sex":"man","job":"NO.1android"});

WriteResult({"nInserted" : 1 })


>db.shihao.find()

{"_id" : ObjectId("5916bbc864a2a21938b93dce"),"name" : "chenlebo", "age" : 20, "sex": "man", "job" : "NO.1 android" }


>db.shihao.insert({"name":"wujia","age":18,"sex":"man","job":"student"});

WriteResult({"nInserted" : 1 })


>db.shihao.insert({"name":"waterwater","age":18,"sex":"man","job":"kingof the technology"});

WriteResult({"nInserted" : 1 })


>db.shihao.insert({"name":"waterwater"},{$set:{"age":50}},false,false);

WriteResult({"nInserted" : 1 })


>db.shihao.remove({"name":"waterwater"});

WriteResult({"nRemoved" : 2 })


>db.shihao.update({"name":"chenlebo"},{$set:{"age":50}},false,false);

WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })


>db.shihao.find();

{"_id" : ObjectId("5916bbc864a2a21938b93dce"),"name" : "chenlebo", "age" : 50, "sex": "man", "job" : "NO.1 android" }

{"_id" : ObjectId("5916bc3264a2a21938b93dcf"),"name" : "wujiacheng", "age" : 18,"sex" : "man", "job" : "student"}


>db.xiaohao.drop();

true








总结完毕!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_我走路带风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值