MongoDB入门学习1
来源:互联网 发布:ubuntu挂载点设置 编辑:程序博客网 时间:2024/05/29 11:59
1,MongoDB简单介绍
1.1,NoSQL数据库
数据库:进行高效的、有规则的进行数据持久化存储的软件
NoSQL数据库:Not only sql,指代非关系型数据库
优点:高可扩展性、分布式计算、低成本、灵活架构、半结构化数据、简化关联关系
缺点:没有标准化、有限查询、不直观常用NoSQL数据库
1.2,MongoDB介绍
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。
MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
它的特点是高性能、易部署、易使用,存储数据非常方便。
主要功能特性有:
* C++编写的运行稳定性能高的数据.
* 面向集合存储,易存储对象类型的数据。
* 模式自由。
* 支持动态查询。
* 支持完全索引,包含内部对象。
* 支持查询。
* 支持复制和故障恢复。
* 使用高效的二进制数据存储,包括大型对象(如视频等)。
* 自动处理碎片,以支持云计算层次的扩展性。
* 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
* 文件存储格式为BSON(一种JSON的扩展)。
* 可通过网络访问。
2,安装说明
2.1,安装
- MongoDB官网: https://www.mongodb.com/ ,注意:偶数为稳定版,如1.6,奇数为开发版,如1.7
- MongoDB支持Windows、Linux安装,安装很简单,网上资料很多,这里就不赘言。
- Ubuntu下,安装mongodb服务
sudo apt-get install mongodbmongo -versionmongo
- 安装python的mongodb包
pip install pymongo
2.2,启动命令
- 通过service启动或停止mongodb
sudo service mongodb startsudo service mongodb stopsudo service mongodb restartsudo service mongodb status
- 通过mongod命令直接执行
sudo /usr/bin/mongod --config /etc/mongodb.conf &sudo /usr/bin/mongod --dbpath /home/mongodb/data &# 此处的路径表示你要创建数据库的文件夹,其中data文件夹需要自己在MongoDB路径下创建,系统不会在动帮你生成
2.3,配置文件和数据文件
配置文件地址:/etc/mongodb.conf
mongodb的文件结构,单个collection是三个文件,例如person.0、person.1、person.ns(和Mysql的数据文件结构相似)
.├── hero.0├── hero.1├── hero.ns├── journal│ ├── j._0│ ├── prealloc.1│ └── prealloc.2├── local.0├── local.ns├── mongod.lock├── person.0├── person.1├── person.ns├── stu.0├── stu.1└── stu.ns
3,用户交互
3.1,命令行交互
- MongoDB后台管理Shell,直接输入mongo即可
$ ./mongoMongoDB shell version: 3.0.6connecting to: testWelcome to the MongoDB shell.> show dbslocal 0.078125GBtest 0.203125GB> use testswitched to db test> show collectionssystem.indexesusers> db.users.find(){ "_id" : ObjectId("59ef19ff87e6b6c5f2b3d215"), "name" : "kevin" }
- 以下信息并没有测试成功,需要再研究下
数据库的信息存储在集合中,他们统一使用系统的命名空间:DBNAME.system.*DBNAME 可用 db 或数据库名替代DBNAME.system.namespaces :列出所有名字空间DBNAME.system.indexs :列出所有索引DBNAME.system.profile :列出数据库概要信息DBNAME.system.users :列出访问数据库的用户DBNAME.system.sources :列出服务器信息
3.2,MongoDb Web用户界面
MongoDB 提供了简单的 HTTP 用户界面。如果你想启用该功能,需要在启动的时候指定参数 –rest 。
MongoDB 的 Web 界面访问端口比服务的端口多1000。
如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://192.168.1.89:28017。
- 启动命令
$ sudo mongod --dbpath=/var/lib/mongodb --rest
- 可视化页面
4,软件开发
4.1,Python
#-*- coding:utf-8 -*-import pymongodef system(): print('◆您将进入数据库管理系统,数据无价、谨慎操作!◆') print('◇1:查看数据◇') print('◇2:增加数据◇') print('◇3:修改数据◇') print('◇4:删除数据◇') print('◇5:搜索数据◇') print('●6:退出数据库管理系统●') # 建立与mongodb的连接 client = pymongo.MongoClient('192.168.1.89', 27017) # 得到数据库 stu = client['person'] # 得到一个数据集合 message = stu['message'] while True: order = int(raw_input('请输入相关指令:')) if order==1: exit = message.count() if exit==0: print('抱歉,数据库中目前没有相关数据!') else: for data in message.find(): content = data['name']+data['age']+data['sex'] print(content) elif order ==2: name = raw_input('请输入学生姓名:') age = raw_input('请输入学生年龄:') sex = raw_input('请输入学生性别(男/女):') data = { 'name':name, 'age':age, 'sex':sex, } message.insert_one(data) print ('添加成功!') elif order == 3: name = raw_input('请输入要修改的学生姓名:') exit = message.count({'name': name}) if exit != 0: age = raw_input('请输入修改后的学生年龄:') message.update({'name':name},{'$set':{'age':age}}) print('修改成功') else: print '抱歉,数据库中没有这个学生的信息!' elif order == 4: name = raw_input('请输入要删除的学生姓名:') exit = message.count({'name': name}) if exit != 0: message.remove({'name':name}) print('删除成功') else: print '抱歉,数据库中没有这个学生的信息!' elif order == 5: name = raw_input('请输入要查询的学生姓名:') exit = message.count({'name':name}) if exit!=0: data = message.find_one({'name':name}) content = data['name']+data['age']+data['sex'] print content else: print '抱歉,数据库中没有这个学生的信息!' elif order == 6: print('感谢您的使用!') break else: print('您的输入有误,请输入有效指令(1/2/3/4/5)')if __name__ == '__main__': system()
4.2,Js
- 暂略
5,高级应用
基于MongoDB的python日志功能
http://www.open-open.com/lib/view/open1482979886103.htmlMongoDB高可用集群配置的几种方案
http://www.open-open.com/lib/view/open1476329503902.html
6,参考页面
- MongoDB介绍及安装
http://www.open-open.com/lib/view/open1413362370700.html - MongoDB 教程
http://www.open-open.com/lib/view/open1423540442279.html
- MongoDB入门学习1
- MongoDB学习笔记1(入门)
- MongoDB入门学习(1 )
- MongoDB开发学习(1)经典入门
- MongoDB开发学习(1)--入门
- MongoDB入门学习(1)创建删除
- MongoDB 学习开发入门
- mongodb 入门学习
- mongodb 学习----入门 笔记
- MongoDB入门学习
- MongoDB学习笔记(入门)
- MongoDB学习笔记(入门)
- MongoDB学习-入门
- mongoDB学习--入门
- Mongodb的入门学习
- MongoDB学习笔记(入门)
- MongoDB入门学习一
- MongoDB入门学习2
- bias and variance
- 微商大咖不轻易透露的操作秘诀
- JavaScript面试题
- DNS over TLS到底有多牛?你想知道的都在这儿
- trustzone
- MongoDB入门学习1
- Spring Boot系列03
- CSS-优先级
- MYSQL主从复制实战
- 扬声器
- IC设计学习目录
- 把一栋15年的轻钢别墅拆开,别墅内部让人震惊
- CSS-显示与隐藏
- 向量的几何意义