启动 : 1)创建一个文件夹存放mongodb的数据  启动的时候指定这个文件夹为存储mongodb的存储路径  我的目录是D:\data

2)启动mongodb服务  进入安装mongodb的bin目录 输入 mongod --dbpath=path     这里的path是你刚才创建的存储数据的路径

如果未添加端口默认的端口是 27017   你也可以为你的mongodb服务指定一个特定的端口 通过下面的指令

mongod --dppath dbpath --port port  2016.4.19

此时我们mongodb服务的端口已经在27000启动了,这个窗口一直开启着

3)连接数据库  我们需要重新打开一个控制台   通过如下的命令连接数据库  mongo ip:port

由于我们连接的就是我们本机的数据库服务  不需要输入ip    由于上面我们配置的是mongodb的服务在27000端口启动 所以我们要通过下面的指令来连接数据库

mongo --port 27000

这样我们就连接上了数据库(当我们需要连接远程的数据库的时候 就需要ip这个条件了)

你也许考虑每次启动服务都要去设置路径感觉好烦 而且我们根本没有在我们启动的时候对mongodb做任何的设置 都是默认的 配置文件这个词就出现在脑海了

读取配置文件启动

1)首先你需要创建这个配置文件  我是在D:\data下 的mongodb.conf  (不同的数据目录下配置不同的conf文件 实现不同的配置)

2)编写conf 你可以通过在mongod --help 查看能配置的属性  这些属性都是通过键值对的方式进行配置的

下面是我的配置文件的内容

dbpath=D:\data  //数据存储的路径
logpath=D:\data\log\log.log //日志文件存储的路径
logappend= //日志文件添加的方式累加 这个没有参数值 所以为空
journal= //启动日志 没有参数值 为空
port=27000 // 启动的端口号

3)读取配置文件启动mongodb服务   mongo -f args  args就是你配置文件的位置

你会发现这样的方式启动的话,怎么在控制台没有什么反应呀 就是一个光标 其实我也以为没启动  此时你打开我们配置的日志文件的目录 会发现里面log出了信息

通过日志文件的路径  端口号27000 发现的确是通过我们的配置文件启动的mongodb服务

3)连接数据库 同控制台启动的指令    这样我们就连接上了我们的数据库

基本操作

首先我们先学习几个基本的关于数据库的指令

db.version()  这个是输出数据库的版本信息

db.stats() 数据库的状态

上面可以看出我的mongodb的版本是2.6.5  由于默认连接的是test数据库显示 里面有三个collection

db\db.getName() 查看当前使用的数据库的名字

show dbs  查看你存储路径下的所有数据库

db.dropDatabase() 删除当前使用的数据库

上面的例子中 显示查看了当前使用数据库的名字 显示 test   又通过show dbs 查看了data下的所有的数据库  此时我们的连接还是在test上 通过db.dropDatabase()删除test数据库 在通过show dbs 发现test数据库的确被我们删除了

接下来我们演示重新创建test数据库 并且在test中加入一个collection的过程

use databasename 使用数据库   这个指令当你数据库列表中没有你指定的databasename的时候 它会去创建这个数据库(注意此时这个数据库还不存在 只有你实质的插入了一个collection后 这个数据库就存在了)

db.createCollection(name,{capped:<boolean>,autoIndexId:<boolean>,size:<number>,max:<number>})

capped  是否开启集合限制 默认为false

autoIndexId 是否使用_id作为索引 默认为true   _id是数据库为我们添加的GUID  为了保证数据的唯一性

size  存储空间的大小

max 最大存储条目

(capped参数的设置可以忽略 并且当capped和max一起使用的时候,会报错 )

如果我们要创建默认的collection 可以直接db.createCollection("name")  通过show collections 来查看我们的创建的集合 db.collenctionname.drop() 删除集合

上面的例子我们演示了创建集合 查看集合 删除创建集合的操作 (在上面的例子中当我们不需要对集合做任何的设置的时候可以直接向不存在的集合中插入数据 mongodb会为我们自动创建集合)

向集合中插入数据  (花样玩法)

db.insert({key:value,key:value})

上面的这个例子对前端来说简直是赞 因为mongodb本身存储的就是文档 已键值形式的存储(并且同一个collection的不同文档可以是完全不同的结构)

db.collectionname.save()  (稍后会写update  save其实是save和update的一个集合)

循环插入 (我先将上面插入的数据删除)

补充一个插入的例子

上面的例子我生成了一个随机数作为id进行插入

db.collectionname.update(<query>,<update>,<upsert>,<multi>)   修改已经存在的文档

<query> 查询的匹配条件

<update> 更新的文档内容  (这里只需要添加你更新的文档的内容即可 如果你想要实现的是upsert 就是当不存在文档的时候,添加文档,这里就要添加文档的所有部分)

<upsert>  文档或者boolean 默认为false 当mongodb中不存在我们要更新的文档的时候,不进行操作  添加文档或者设置为true的时候 会在没有找到文档的时候为我们添加文档

上面的例子当我们没有设置<upsert>的时候不存在文档的时候 mongodb不做任何操作 设置<upsert>的时候会为我们插入新的数据

<multi> 默认为false mongodb在更新默认只能更新查找到的一条数据 设置为true的时候 支持多行更新  设置multi为true的时候必须与$的操作一起(否则报错)因为当你不是对多行进行操作的时候,不必要使用multi参数

上面的例子演示了同时为collection中两个文档增加字段

其他的更新操作

$inc 增加已经存在的键的值 在键不存在的时候创建 只支持数字

$rename 重新命名字段

$set 用来指定一个键的值  不存在的话就创建这个键

$unset  删除指定的键值

mongodb 基本指令学习的更多相关文章

  1. mongodb 基本指令学习 (2)

    db.collectionname.find(<criteria>, <projection>) <criteria>   可选   类型 文档    文档的过滤条 ...

  2. ARM指令学习,王明学learn

    ARM指令学习 一.算数和逻辑指令 1— MOV 数据传送指令    2.— MVN 数据取反传送指令    3.— CMP 比较指令    4.— CMN 反值比较指令    5.— TST 位测试 ...

  3. Vue学习之路8-v-on指令学习简单事件绑定之属性

    前言 上一篇文章以v-on指令绑定click事件为例介绍了v-on指令的使用方法,本文介绍一下v-on绑定事件的一些属性的使用方法. v-on绑定指令属性 .stop属性 阻止单击事件继续向上传播(简 ...

  4. Vue学习之路7-v-on指令学习之简单事件绑定

    前言 在JavaScript中任何一个DOM元素都有其自身存在的事件对象,事件对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置和鼠标按钮的状态等.事件通常与函数结合使用,函数不 ...

  5. angularjs学习第七天笔记(系统指令学习)

    您好,接着在昨天对简单指令学习了解以后,今天开始学习了解angularjs中的系统指令 系统指令大部分都是以ng开始,这也是为什么在自定义指令命名时不要以ng开始的原因所在 系统指令在学习了分成两个部 ...

  6. 2017-2018-3 20155337《信息安全系统设计基础》 pwd指令学习

    2017-2018-3 20155337<信息安全系统设计基础> pwd指令学习 任务要求 学习pwd指令 研究pwd实现需要的系统调用(man -k:grep),写出伪代码 实现mypw ...

  7. mongodb常用命令学习笔记

    mongodb常用命令学习笔记 创建数据库 use DATABASE_NAME eg: use users; 如果数据库不存在,则创建数据库,否则切换到指定数据库.要显示刚刚创建的数据库,需要向数据库 ...

  8. mongodb的入门学习

    mongodb的入门学习 简介: MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...

  9. 4.Android-adt安卓打包过程、adb指令学习

    本章学习adt安卓打包过程.adb指令学习.并通过adb将打包的APK发给设备 1.打包 在eclipse中已经帮我们实现打包了. 具体打包流程如下: 最终一个APK包含了如下: classes.de ...

随机推荐

  1. U盘FAT32转换NTFS格式

    运行----cmd----convert x:/fs:ntfs回车 x标识你的U盘或硬盘盘符 比如你的U盘是H盘,那就是h:/fs:ntfs  FAT32----NTFS是不可逆转的转换.

  2. laravel 5.3 学习之路——路由(资源,别名)

    laravel的路由定义中,其中route:resoure(),可以直接定义类似restful风格的URL 例如:Route::resource('system/role','System\RoleC ...

  3. 【转载】solr初体验

    [1]http://cxshun.iteye.com/blog/1039445 由于工作原因,这段时间接触到solr,一个基于lucene的企业级搜索引擎.不怎么了解它的童鞋可以去GOOGLE一下. ...

  4. 重识JavaScript 之 JavaScript的组成

    JavaScript由ECMAScript.DOM.BOM组成. 简单认识: ECMAScript:首先它不是一门编程语言,而是一个标准,规定这些浏览器的脚步语言必须按照它的规定去做. DOM     ...

  5. Mysql学习笔记(九)索引查询优化

    PS:上网再次看了一下数据库关于索引的一些细节...感觉自己学的东西有点少...又再次的啃了啃索引.... 学习内容: 索引查询优化... 上一章说道的索引还不是特别的详细,再补充一些具体的细节... ...

  6. Android开发总结

    出来工作半年多了,没啥好交代的,就说说自己半年来的Android开发经历. 1.IDE      这半年来,从Eclipse到Android Studio,经历了两个IDE,在这里做一下简单的评价. ...

  7. HT图形组件设计之道(二)

    上一篇我们自定义CPU和内存的展示界面效果,这篇我们将继续采用HT完成一个新任务:实现一个能进行展开和合并切换动作的刀闸控件.对于电力SCADA和工业控制等领域的人机交互界面常需要预定义一堆的行业标准 ...

  8. mysqldump: Couldn't execute 'show table status '解决方法

    执行:[root@host2 lamp]# mysqldump -F -R -E --master-data=2   -p -A --single-transaction 在控制台端出现 mysqld ...

  9. MySQL体系结构以及各种文件类型学习

    1,mysql体系结构 由数据库和数据库实例组成,是单进场多线程架构. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用n ...

  10. Mysql创建用户的三种基本方法

    1.采用create user e.g.  create user 'username'@'host' identified by 'password'; 2.采用grant语句 e.g.  gran ...