Que's Blog

WebFrontEnd Development

0%

mongoDB笔记(一)

安装

mongodb在linux下安装不太复杂,这里仅仅说非常常见的ubuntu安装。

1
sudo apt-get install mongodb

如果是OSX,那么使用brew:

1
brew install mongodb

运行服务端

运行命令 mongod即可将mongod服务端运行起来。这里有两个非常有用的参数需要注意:

1.认证参数: –auth
2.数据库参数:–dbpath

先来看看加上这两个参数后的命令:

1
mongod --auth --dbpath ~/workStation/mongodb/learnNode

这里要说明两点:

  • 如果没有 --auth,那么数据库是不会认证用户,也就是说可以直接登录CURD而不验证操作者身份。通常本地开发会这样使用,但是个人建议,即使本地开发,最好也不要省略这个步骤,毕竟个人认为,贪图这点方便没有必要。

  • 如果没有 --dbpath这个属性,那么mongoDB会使用默认的路径:/data/db。新安装的mongoDB第一次报错往往就是没有加上 --dbpath这个参数,导致在/data/db不存在和没有读写权限时候就会导致报错。

如果确实不想指定数据库路径,那么解决办法是:

1
2
mkdir -p /data/db 
chown <youname> /data/db

客户端连接

如果是本地直接通过 mongod跑起来的服务端,那么只需要运行 mongo即可连上数据库。
但是如果是需要认证的服务器,那么需要使用如下命令:

1
mongo <dbhost>:<port>/<dbname> -u <username> -p <pwd>

这里需要注意的是 尖括号加字符代表是变量,使用时尖括号都是没有的

Collection中数据的CURD

这里应该是最重要的一部分了。CURD是最基础也是数据库操作最重要的一部分。

为了演示如何CURD,熟悉mysql等关系数据库的,你默认这里有一个user的表好了,其实它就是mongoDB里面的collection。同时这里默认你已经在mongoDB的shell里面了。

C-Create 创建

先把万年龙套张三弄进来:

1
2
zhangsan = {name:"张三",age:24};
db.user.insert(zhangsan);

insert

R-read 查询插入结果

现在看看插入成功没有:
运行查询命令

1
db.user.find({name:"张三"}});

find

U-update 更新

为了演示这个,那么我就假装写错了张三名字,改成18吧…

1
2
zhangsan = {name:"张三",age:18};
db.user.update({name:"张三"},zhangsan);

update
恩,请忽略我打错逗号的报错。。。

D-delete 删除

删除和插入类似,这里就不截图了。

1
db.user.remove({name:"张三",age:24});

管理数据库中Collection(CURD)

每个Collection都类似SQL数据库中的一张表,所以除了表中的数据CURD,表本身的操作也非常重要。

删除Collection(D)

这里删除user

1
2
db.user.remove();	//删除user内部记录
db.user.drop(); //这是删除collections 在内部数据很多时候 删除collection速度远远比删除文档速度快

新建Collection(C)

新建一个,把删掉的重新建立回来…

1
db.createCollection("user")

查看Collection列表(R)

1
show collections;

修改Collection(U)

把user改成复数形式好了:

1
db.user.renameCollection("users")

这里需要说明的是,在mySQL里面的修改表还涉及到修改表结构这个修改,但是NoSQL数据库不存在这个说法,因为『NoSQL』;