zoukankan      html  css  js  c++  java
  • mongodb

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

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

        

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

    2、傻瓜式安装 。  本人安装在 D:wampmongodb  安装好后,D:wampmongodbdatadb 在里面建多两层文件夹

       到bin目录下面 管理员权限运行cmd命令  mongod.exe --install --dbpath D:wampmongodbdatadb --logpath D:wampmongodbdatalog.txt

        ==》

    3、启动 

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

    4、链接数据库  D:wampmongodbin>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 -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 
    设置权限 

      

      

      

  • 相关阅读:
    为什么要用do-while(0)?
    网络字节序&大小端存储
    sql语句w3school教程
    C++编码规范
    std::deque双端队列介绍
    gdb基本操作
    gdb调试多线程
    数据库基础
    删除vector所有元素
    stl迭代器失效
  • 原文地址:https://www.cnblogs.com/rogge7/p/7291806.html
Copyright © 2011-2022 走看看