mongodb 基本指令学习

启动 : 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:dataloglog.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 

dbdb.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  删除指定的键值

原文地址:https://www.cnblogs.com/tiantianwaigong/p/4984528.html