启动 : 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. .net 操作 sqlite

    sqlite 表结构和数据的导出 全部导出 sqlite3 data.db >.output dd.sql >.dump 待续

  2. POJ 2676 Sudoku

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12005   Accepted: 5984   Special ...

  3. CLR via C#深解笔记四 - 方法、参数、属性

    实例构造器和类(引用类型) 构造器(constructor)是允许将类型的实例初始化为良好状态的一种特殊方法.构造器方法在“方法定义元数据表”中始终叫.ctor. 创建一个引用类型的实例时: #1, ...

  4. iOS 7定制UIPageControl遇到的问题

    转自snorlax's blog 先说下ios7之前 那些点点的实现非常简单 就是UIPageControl.subviews 就是一个个点的UIImageView 所以只需简单的替换掉就好了代码如下 ...

  5. Java Job

    1.在META-INF\MANIFEST.MF中指定Main-Class Main-Class: test.HelloWorld 命令:java -jar fileName.jar 2.不指定Main ...

  6. 整合ssh model $$_javassist_13 cannot be cast to javassist.util.proxy.Proxy

    经goole stackoverflow 发现是 javassit 包冲突 项目使用的是maven 检查依赖包

  7. 2014 网选 5012 Dice(bfs模板)

    /* 题意:就是给定两个筛子,每个筛子上6个面,每个面的数字属于[1,6], 且互不相同! 问a筛子最少经过按照题目规定的要求转动,达到和b筛子上下左右前后的数字相同! 思路:很直白的bfs,将每一种 ...

  8. DDD:Repository和UnitOfWork的生命周期问题

    UnitOfWork UnitOfWork是一种有状态的.用例级别的对象.如果不采用ORM是不会使用UnitOfWork模式的, Repository Repository是一种特殊的领域服务,因此是 ...

  9. AngularJS的学习--TodoMVC的分析

    最近一段时间一直在看AngularJS,趁着一点时间总结一下. 官网地址:http://angularjs.org/ 先推荐几个教程 1. AngularJS入门教程 比较基础,是官方Tutorial ...

  10. [转载]基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...