您的位置:首页 > 数据库 > Mongodb

mongodb安装和命令行基本操作

2017-05-13 23:25 609 查看
Mongodb
今天学习了一波mongodb,了解了一下三大家族,然后主要学习了mongodb的操作。

(1)安装mongodb
跟谁网上的教程安装方法如下:
系统Ubuntu16.04:
sudoapt-get autoremove
sudoapt-get install mongodb

然后等待一会就安装好了

(2)mongodb的基本操作:
命令行进入就一条命令:
mongo

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

接着我们可以看一下它里面有什么表
4000
>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->来实现查找

按key:value查找
>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

总结完毕!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: