MongoDB入门学习记录一:基本使用
2017-02-06 00:00
302 查看
摘要: MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
没有表结构的概念,每条记录可以有完全不同的结构
sql数据库需要先定义表结构再使用,mongodb不需要
完全的索引支持
方便的冗余与扩展
复制集保证数据安全
分片扩展数据规模
2、高伸缩性
3、弱事务类型的应用
4、大数据量高并发的应用
可以选择下载安装文件或者压缩包直接解压出来,这里我习惯直接下载压缩包解压出来使用。
下载好的压缩包:
解压后的目录结构:
、
bin目录下两个重要的文件:mongod.exe、mongo.exe。前者是用于启动mongodb服务的,后者用于连接mongodb服务,为了方便在命令行中使用,需要配置环境变量,将bin目录配置到path目录下。
,conf目录下新建一个配置文件,编写配置信息。配置相应的端口(mongoDB默认的端口为27017,如果使用默认端口,则无需指定)、数据库目录、日志文件的地址。
启动服务,在命令行窗口下输入:mongod -f F:\mongoDB\conf\mongo.conf,即可根据设置的配置启动服务。启动服务后会在dbpath下生成默认的数据库文件
在此命令窗口下键入相关命令实现对数据库不同的操作。这里先罗列出几个简单的命令:
db:查看当前使用的数据库
show dbs:显示有哪些数据库(如果一个数据库没有数据不会显示)。
use 数据库名:使用哪个数据库,如果没有该数据库,系统在使用到的时候会默认创建这个数据库。
show collections:显示当前数据库下所有的集合(类同于关系数据库的表)。
db.shutdownServer():关闭服务。
db.dropDatabase():删除当前使用的数据库。
写入数据的命令为:db.集合名.insert();
查询数据的命令为:db.集合名.find();如果需要指定查询某些数据,则在find中传入json串代表你要查询的数据。
查询集合有多少条数据:db.集合名.find().count()
分页排序查询数据:db.集合名.find().skip(start).limit(pagesize).sort();
注:这里排序total指定的1代表正序排列,-1位逆序排列
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。在更新的语句加上$set代表只更新指定的字段,其他字段不更新。
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
remove() 方法用于更新已存在的文档。语法格式如下:
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。
删除集合:db.collection.drop();
创建索引:db.product.ensureIndex();
实例:
注:name后的1代表升序,-1代表倒叙。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
什么是MongoDB ?
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
为什么要用MongoDB?
无数据结构限制没有表结构的概念,每条记录可以有完全不同的结构
sql数据库需要先定义表结构再使用,mongodb不需要
完全的索引支持
方便的冗余与扩展
复制集保证数据安全
分片扩展数据规模
MongoDB的适用场景
1、数据缓存2、高伸缩性
3、弱事务类型的应用
4、大数据量高并发的应用
MongoDB的安装(windows)
下载地址:https://www.mongodb.com/download-center。可以选择下载安装文件或者压缩包直接解压出来,这里我习惯直接下载压缩包解压出来使用。
下载好的压缩包:
解压后的目录结构:
、
bin目录下两个重要的文件:mongod.exe、mongo.exe。前者是用于启动mongodb服务的,后者用于连接mongodb服务,为了方便在命令行中使用,需要配置环境变量,将bin目录配置到path目录下。
搭建简单的MongoDB服务器
在某个目录下新建以下几个文件夹,这里在F:\mongoDB下新建了三个文件夹分别用来存储配置文件,数据文件和日志文件,conf目录下新建一个配置文件,编写配置信息。配置相应的端口(mongoDB默认的端口为27017,如果使用默认端口,则无需指定)、数据库目录、日志文件的地址。
启动服务,在命令行窗口下输入:mongod -f F:\mongoDB\conf\mongo.conf,即可根据设置的配置启动服务。启动服务后会在dbpath下生成默认的数据库文件
连接MongoDB
这里讲的是利用mongo.exe进行连接,打开新的命令行窗口,输入mongo命令即链接上了,这里由于没有指定具体连接哪个数据库,因此默认的是链接test数据库。在此命令窗口下键入相关命令实现对数据库不同的操作。这里先罗列出几个简单的命令:
db:查看当前使用的数据库
show dbs:显示有哪些数据库(如果一个数据库没有数据不会显示)。
use 数据库名:使用哪个数据库,如果没有该数据库,系统在使用到的时候会默认创建这个数据库。
show collections:显示当前数据库下所有的集合(类同于关系数据库的表)。
db.shutdownServer():关闭服务。
db.dropDatabase():删除当前使用的数据库。
MongoDB的基本使用
1、插入数据与查询数据
在mongodb中,集合就是数据库的表写入数据的命令为:db.集合名.insert();
查询数据的命令为:db.集合名.find();如果需要指定查询某些数据,则在find中传入json串代表你要查询的数据。
查询集合有多少条数据:db.集合名.find().count()
分页排序查询数据:db.集合名.find().skip(start).limit(pagesize).sort();
注:这里排序total指定的1代表正序排列,-1位逆序排列
2、修改和删除
update() 方法用于更新已存在的文档。语法格式如下:db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。在更新的语句加上$set代表只更新指定的字段,其他字段不更新。
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
remove() 方法用于更新已存在的文档。语法格式如下:
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。
writeConcern :(可选)抛出异常的级别。
删除集合:db.collection.drop();
3、创建索引
查看当前集合下的索引:db.product.getIndexes()创建索引:db.product.ensureIndex();
实例:
注:name后的1代表升序,-1代表倒叙。
相关文章推荐
- MongoDB入门1——简介、安装及基本使用
- MongoDB学习笔记之基本使用
- MongoDB学习10_MongoDB入门篇_基本操作
- MongoDB学习3——mongoDB的一些基本使用
- [学习笔记] TensorFlow 入门之基本使用
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用 推荐
- mysql的入门基本使用(适合新手学习)
- AngularJS学习记录-过滤器(基本使用)
- 算法学习入门之使用C语言实现各大基本的排序算法
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
- GDI+学习记录(11)- 纹理画刷 TextureBrush的基本使用
- Sublime text 入门学习资源篇及其基本使用方法
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项
- 【D3D学习记录】入门3D编程的基本数学知识(2)-向量、线性空间和线性变换
- cocos2d-x学习笔记17:记录存储2:SQLite基本使用
- Mongodb学习使用记录
- MongoDB入门学习(二):MongoDB的基本概念和数据类型
- Mongodb-面向使用学习-基本操作-(增与查)
- Mockito入门学习(2)--Mock的基本使用