MongoDB

单机版安装

1.创建mongodb_simple目录

2.进入此目录

3.创建data文件夹用来存储数据库的数据文件;

 创建log文件夹用来存储数据库的日志文件;

 创建文件夹bin用来存储数据库的可执行文件

 创建文件夹conf用来存储数据库的配置文件

4.把mongod文件拷贝到bin目录下

5.在conf文件夹下创建启动配置文件mongod.conf,内容如下

port=12345          --监听的端口

dbpath=data         --指明数据文件存放的位置

logpath=log/mongod.log  --指明日志文件存放的位置

logappend=true      --日志以追加方式进行

fork=true            --表明这是一个后台进程

6.启动mongodb数据库服务 ./bin/mongod -f conf/mongod.conf

7.连接到mongodb服务 ./bin/mongo ip:端口/数据库

Shell基本操作

1.MongoDB shell不连接到任何mongod,使用参数 --nodb

2.连接时使用命令:conn=new Mongo(“some-host:30000”);db=conn.getDB(“myDB”)

3.查看MongoDB shell内置的帮助文档使用help命令

4.可以通过db.help()查看数据库级别的帮助

5.使用db.foo.help()查看集合级别的帮助

6.查看函数的实现代码通过命令db.foo.update

7.把javascript文件传给shell进行执行

mongo script1.js script2.js script3.js

load(“script1.js”);

支持的数据类型

1.null

2.布尔型

3.数值(shell默认使用64位浮点型数值)

使用NumberInt类(表示4字节带符号整数)

NumberLong类(表示8字节带符号整数)

如下:{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}

4.字符串

5.日期不存储时区

{“x”:new Date()}

6.正则表达式

{“x”:/foobar/i}

7.数组,数据列表或数据集可以表示为数组

{“x”:[“a”,”b”,”c”]}

8.内嵌文档

{“x”:{“foo”:”bar”}}

9.对象Id,对象Id是一个12字节的ID,是文档的唯一标识

{“x”:ObjectId()}

10.二进制数据

11.代码

基本命令

1.显示所有数据库

show dbs

2.切换数据库

use 数据库名

3.删除数据库

db.dropDatabase()

4.创建数据库

use wurongxiang

5.显示所有的集合

show collections

show tables

6.插入数据到集合中

db.wurongxiang_collection.insert({x:1})

7.查询集合

db.wurongxiang_collection.find()

8.指定条件查询

db.wurongxiang_collection.find({x:1})

9.可以使用js语法进行循环插入

for(i=2;i<100;i++) db.wurongxiang_colletion.insert({x:i})

10.计算集合的条数

db.wurongxiang_collection.find().count()

11.Skip函数,limit函数,sort函数

db.wurongxiang_collection.find().skip(3).limit(2).sort({x:1})

12.数据更新(两个参数最少)

db.wurongxiang_collection.update({x:1},{x:999})

13.数据更新之set运算符使用

db.wurongxiang_collection.insert({x:100,y:100,z:100})

db.wurongxiang_collection.update({z:100},{$set:{y:100}})

14.数据更新不存在的文档时插入需要使用更新的第三个操作符

db.wurongxiang_collection.update({y:100},{y:99},true)

15.数据更新默认只更新查找到的第一条数据,若要全部更新,需要使用到第四个操作符

db.wurongxinag_collection.update({c:1},{$set{c:2}},false,true)

16.删除数据为了防止误操作,必须带条件

db.wurongxiang_collection.remove({c:2})

17.删除表

db.wurongxiang_collection.drop()

18.显示索引

db.wurongxiang_collection.getIndexes()

19.创建索引

db.wurongxinag_collection.ensureIndex({x:1})

索引种类

1._id索引(绝大多数集合默认建立的唯一的索引)

2.单键索引(与_id索引不同,不会自动创建)

3.多键索引

db.wurongxiang_collection.insert({x:[1,2,3,4,5]})

4.复合索引

db.wurongxiang_collection.ensureIndex({x:1,y:1})

5.过期索引(ttl索引)

db.wurongxiang_collection.ensureIndex({time:1},{expireAfterSeconds:30})

  db.wurongxiang_collection.insert({time:new Date()})

Note==>过期索引的限制:

1.存储在过期索引字段的值必须是指定的时间类型(必须是ISODate或者ISODate数组,不能

使用时间戳,否则不能被自动删除)

2.如果指定了ISODate数组,则按照最小的时间进行删除

3.过期索引不能是复合索引

4.删除时间不是精确的。(删除过程是由后台程序每60s跑一次,而且删除也需要一些时

间,所以存在误差)

6.全文索引

db.wurongxiang_collection.ensureIndex({“article”:”text”})

  db.wurongxiang_collection.insert({“article”:”aa bb cc dd ee”})

  db.wurongxiang_collection.insert({“article”:”aa bb cc rr gg”})

  db.wurongxiang_collection.insert({“article”:”aa bb cc hh”})

  db.wurongxiang_collection.find({$text:{$search:”aa”}})

  db.wurongxiang_collection.find({$text:{$search:”rr”}})

  db.wurongxiang_collection.find({$text:{$search:”aa bb cc”}})

  db.wurongxiang_collection.find({$text:{$search:”aa bb -cc”}})

  db.wurongxiang_collection.find({$text:{$search:”\”aa\” \“bb\” \“cc\””}})

  db.wurongxiang_collection.find({$text:{$search:”aa bb”}},{score:

{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})

Note==>全文索引的使用限制

1.每次查询,只能指定一个$text查询

2.$text查询不能出现在$nor查询中

3.查询中如果包含$text,hint不在起作用

4.MongoDB全文索引不支持中文

MongoDB复制集

1.复制集概念

传统的主从结构master/slave演变而来的复制集

复制集是由一组拥有相同数据集的mongod实例所组成的集群

有一个数据节点为主节点,来接收所有的写操作,其他的数据节点都是从节点。

2.复制集特点

主是唯一的,但是主节点是哪一个不确定,当主节点挂了,会从从节点挑选一个充当主节点

大多数原则即集群存活节点小于等于二分之一时集群不可写,只可读

mongodb从库无法写入

3.Mongodb副本节点不允许读,需要设置副本节点可读才可以读

db.getMongo().setSlaveOk();

4.创建复制集初始化变量的时候一定要用实际的ip不能用localhost或127.0.0.1

5.查看复制集状态

rs.status()

6.查看复制集状态的另一种方法:

use admin

db.adminCommand(...)

7.查看复制集的配置

rs.conf()

8.通过命令把主节点降级为从节点

rs.stepDown(50)

9.查看复制集日志

show log rs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值