博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongodb
阅读量:5885 次
发布时间:2019-06-19

本文共 3615 字,大约阅读时间需要 12 分钟。

《别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.就全部修改

:zs2name修改为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 -c user -o user.dat 参数-d dbname -c collection name -o output location 还可以制定格式导出--cvs --jsonArray -f指定导入字段 mongodump -d test -o /root/tmp 库表级备份 mongorestore  访问控制: --bind_ip 192.168.1.1 只允许192.168.1.1访问 --port 制定端口 默认的是27017 设置权限 

 

 

 

 

 

 

 

  

  

  

 

转载地址:http://mulix.baihongyu.com/

你可能感兴趣的文章
Pycharm 快捷键
查看>>
thickbox问题
查看>>
【position也可以很复杂】当弹出层遇上了鼠标定位(上)
查看>>
一个机票航班查询的代码
查看>>
xen-4.1.2+Linux-3.1.2源码编译安装
查看>>
15.6. HTML嵌入图片
查看>>
java类型转换函数
查看>>
Oracle和SQL SERVER有哪些区别?
查看>>
MongoDB Map Reduce
查看>>
WPF中不规则窗体与WebBrowser控件的兼容问题解决办法
查看>>
e.keycode详解
查看>>
[Android疑难杂症]动态设置TextView的width不起作用
查看>>
xgboost原理及应用
查看>>
Spring--quartz中cronExpression配置说明
查看>>
照片批量压缩、缩放、加水印工具
查看>>
计蒜客:百度的科学计算器(简单)【python神解】
查看>>
阿里前端框架Alice是个不错的选择
查看>>
eclipse maven
查看>>
PreferencePage的小问题花了大把时间
查看>>
[Erlang 0104] 当Erlang遇到Solr
查看>>