《别out了!还不知非关系型数据库----mongodb视频》

MongoDB教程  http://www.mongodb.org.cn/tutorial/

1、官网下载 对应的版本,  mongodb-win32-x86_64-2008plus-ssl-3.4.6-signed.msi

2、傻瓜式安装 。  本人安装在 D:\wamp\mongodb  安装好后,D:\wamp\mongodb\data\db 在里面建多两层文件夹


到bin目录下面 管理员权限运行cmd命令  mongod.exe --install --dbpath D:\wamp\mongodb\data\db --logpath D:\wamp\mongodb\data\log.txt


==》

3、启动

D:\wamp\mongodb\bin>net start mongodb
请求的服务已经启动。

4、链接数据库  D:\wamp\mongodb\bin>mongo 127.0.0.1:27017

5、查看数据库 > show databases 或  用 show dbs

基本操作命令

a
在线手册

http://www.runoob.com/mongodb/mongodb-tutorial.html

b
查看已有的数据库

语法
: show dbs
或者
show databaes(

mysql
一样
);

c
选择数据库

use
数据库名
(

mysql
一致
)

删除数据库

use
数据库

db.dropDatabase();

6
集合的操作

a
查看当前数据库已有的集合
(
相当于
mysql
的表
)

语法
: show collections(
推荐使用
)
或者
show tables(

mysql
的兼容
)

当使用这个命令时
,
要选择一个数据库

使用
mongodb
特有的命令

b
集合的创建

语法
:db.createCollection(
‘集合名’
);   #
注意集合这个单词的首字母大写

注意
:
如果
use
了一个不存在的数据库
,
我们依旧可以在里面创建集合
.


use
一个不存在的数据库时就会自动创建
.

c
集合
(

)
的删除

语法
:db.
集合名
.drop();


实现数据
(
文档
)

crud

1) C
数据的增加

语法
:db.
集合名
.insert(json
数据
);

json
数据
{

key1

:

value1

,

key2

:

value2

}

说明
:
插入记录成功之后
,mongodb
会默认为每一个文档都添加一个
_id
的字段
,
并且 同一集合中的
_id
是唯一的
.

思考
:
一次性插入多条数据
.

语法格式
:db.goods.insert([{},{},{}]);


js
中索引数组形式插入多条数据

2) R

语法
:db.
集合名
.find(
查询条件
,
查询的列
)


:db.goods.find()    #
查询集合中所有的记录

db.goods.find({

name

:

feng

})  #
查询集合中名字叫
feng
的记录

第一个参数查询条件相当于
MySQL
中的
where
条件

第二个参数查询列格式说明
:

{

age

:1}     #
表示仅返回年龄

db.goods.find({"name":"feng"},{"age":1});

{

age

:0}     #
返回除了年龄意外其他数据

db.goods.find({"name":"feng"},{"age":0});

{

age

:1,name

:1}  #
只返回年龄与姓名

3)R

语法
:db.
集合名
.remove(query,justOne);

参数说明
:query
查询表达式是一个
json
数据
(

sql
中的
where
相似
)


:
删除键名为’李世民’的数据
:db.test.remove({

name

:
”李世民”
});

justOne:true/false
是否只删除
1

.
默认为
false(
相当于
sql
中的
limit)

一次只删一条数据

一次性删除两条数据
,

remove
的第二个参数设置为
FALSE

4) U

语法
:db.
集合名
.update(
条件
,
数据
,[
是否新增默认
false],[
是否修改多条默认
false]).

参数说明
:

参数
3 :
修改的数据不存在则自动添加
,
默认
false,
不添加

参数
4:
是否修改所有符合条件的数据
,
默认值修改一条
.

a
创建测试数据

db.createCollection("test1");

for(var i = 1; i<= 10; i++){

db.test1.insert( {"name":"zs"+i,"age":i} );

}

实际的操作
:

b
修改器的使用


1:


{

name

:

zs1

}
修改为
{

name

:

zs2

}

问题
:
我们只想修改名字
.
但是年龄被删除了
.


2:

a
如何解决例
1
中的数据替换问题
?

办法
:
使用修改器
.

语法
:db.
集合名
.update({
条件
},{
修改器名称:{
修改的键
:
修改的值
}});


2:
通过修改器将
zs3
的年龄修改为
33

db.test1.update({

name

:

zs1

},{

$set

:{

age

:33}});

说明
:
修改器名称的引号可加可不加
,
在这里统一必须要加
.


2:

zs10
的年龄增加两岁
.

db.test1.update({

name

:

zs10

},{

$inc”
:{

age

,2}});

c
测试新增
(
第三个参数的使用
)

当我们再修改数据时
,
如果没有符合条件的
.
就直接新增加一条数据
.

d
测试一次修改多条
(
第四个参数的使用
)

如果一次性有多条数据满足要求
.
那么设为
TRUE

.
就全部修改


:

zs2

name
修改为
250

查询数据:

6、主从服务器,数据同步:


概念: 
----collection, BSON——binary json  启动:mongod -dbpath=/var/db --rest --auth &  --rest启动http api --auth启动包含用户认证(不加则不认证) 基本命令:  连接数据库mongo -uroot -proot admin  
show dbs 显示数据库名 
show collections 显示数据库中集合 
show users 吸纳时当前数据库 用户 
show profile 吸纳时最后系统用时
>1ms的概要 use 切换数据库(没有数据库时会先建立) 
db.help() db.test.help() 显示帮助,显示命令帮助。 
db.createCollection("
user");新建user 集合。 
db.
user.insert({uid:1,username:"jason.sz",age:30});插入一行数据 
db.user.find();查询数据 
db.
user.update({uid:1},{$set:{age:25}});更新数据 
db.dropDatabase() 删除库 需先use 到该数据库 权限管理: 
1,mongodb是没有默认管理员账号,要先添加管理员账号,在开启权限认证。 
2,切换到admin数据库,添加的账号才是管理员账号。 
3,用户只能在用户所在数据库登录,包括管理员账号。 

4,管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。 
安装完成时无用户,需要先添加添加管理员用户(不加
--auth启动)  use adimin 
db.addUser("root","root") 关键字写法记住是驼峰式 
db.addUser("test","test",true)建立只读用户 
验证用户db.auth("root","root")返回1 认证成功 
添加普通数据库用户 
用管理员帐号use test  db.addUser("test","
1234") 
数据导入导出: 
mongoexport 
-u test -p test -d test -user -user.dat 参数-d dbname -c collection 
name 
-o output location 还可以制定格式导出--cvs --jsonArray -f指定导入字段  mongodump -d test -/root/tmp 库表级备份 
mongorestore  访问控制: 
--bind_ip 192.168.1.1 只允许192.168.1.1访问 --port 制定端口 默认的是27017  设置权限 

标签: none

添加新评论