美文网首页
MongoDB的安装和使用

MongoDB的安装和使用

作者: 郭钰涛 | 来源:发表于2017-05-27 11:28 被阅读0次
    一 、Mongo的基本使用
       2.1 Mongo的介绍 NOSQL数据库类型
       show dbs     // 查看已经存在的集合数据
    
       db.help()    // 查看数据库的所有相关的方法
    
       db.stats()   // 查看数据库的状态
    
       db.version()  // 查看当前db的版本
    
       db.getMongo() // 查看当前db的链接地址
    
       use blog     // 先切换到对应的数据集合类
    
       show collections  // 查看集合中的所有的数据信息
    
       2.2 数据库的插入:
    
       db.collection.insert({"book_id":1});
    
       2.3 数据库的查找:
          db.collection.find().count();
          // 类似条件查询
          db.collection.find({"book_id":1});
          //这个主键的id 是自动生成的数据
          // 根据主键查询数据
          db.collection.find({"_id":ObjectId("58bcd55fbcbc58571cb74cd6")});
    
          比较条件
                // 实体 v-html  将标签转实体 <转&lt > 
                {key:value}:等于
                {key:{$lt:value}}小于
                {key:{$lte:value}}小于等于
                {key:{$gt:value}}大于
                {key:{$gte:value}}大于等于
                {key:{$ne:value}}不等于
          AND条件:{key1:value1,key2:value2}
                例子:db.user.find({username:"zhangsan",sex:1}) 查找名字为zhangsan,性别为1的用户
                OR条件:{$or:[{key1:value1},{key2:value2}]}
                例子:db.user.find({$or:[{age:20},{age:25}]})查找年龄为20岁或者25岁的用户      
          区间查询:{key:{$lt:value1,$gt:value2}}
                例子:db.user.find({age:{$lt:30,$gt:20}}) 查找年龄大于20小于30的用户
                值查询:{key:{$in:array}}     
                       {key:{$nin:[‘a’,’b’,’c']}}
                      例子:db.user.find({age:{$in:[18,22,28]}}) 查找年龄是18,22,28的用户
                 模糊查询:{}:{username:正则表达式}
                      例子:db.user.find({username:/ang/}) 查找名字含有ang的用户
                      //类似select * from user where name like '%ang%';
                      例子:db.user.find({username:/^ang/}) 
                      已ang开头的用户
                      //类似select * from user where name like 'ang%';
          分页:
             db.collection.find().limit(10).skip(10) 
             // skip 可以用来实现数据的分页
             跳过10条,获取接下来的10条数据
          排序:db.collection.find().sort({key:1})     
             排序(1升序,-1降序 )
             数据总条数: db.collection.find().count()
    
       2.4 数据库的更新
       直接更新 不建议使用
       注意:会全部替换为后面的值
       db.user.update({"username":"wusong"},
                      {"username":"wudalang","age":10});
    
       update 第一个是条件  第二个是要修改的值
       会自动判定对应的key是否存在 不存在则添加 存在则修改
       db.user.update({"book_id":1},{$set:{"book_id":8}});
       update的第三个参数 表示如果多个值相同则都更新 
       db.user.update({"book_id":1},{$set:{"book_id":10}},{"multi":true});
       $inc:对一个数字字段field增加value {$inc:{“count”:1}}
       db.user.update({"username":"tom"},{$inc:{"age":10}})
       年龄增加10岁     
       $unset:删除字段 {$unset:{“key”:”value"}}
       db.user.update({"username":"xiaolang"},{$unset:{"age":1}},{multi:true})
    
    
       可选参数:{upsert,multi}
          upsert:如果不存在该数据,是否选择插入该数据,默认false不插入,true为插入数据
          db.user.update({"username":"dalang"},{$set:{"username":"xiaolang","age":18,"Sex":1}},{upsert:true})
    
          multi:默认false,只更新第一条符合要求的条件,true为修改所有的条件
          db.user.update({"username":"dalang"},{$set:{"username":"xiaolang","age":18,"Sex":1}},{multi:true})
    
       save 方法更新数据库
       db.collection.save(document,可选参数) 有_id是更新,没有_id是插入
       会丢失一些字段信息
       db.user.save({"_id":ObjectId("58bce7acbcbc58571cb74cd9"),"book_name":"ios"});
       如果存在_id,将某一条数据更新为指定数据,
       等价于覆盖写 会覆盖所有的属性
       // 更新:db.user.save({"_id":ObjectId("57d7768cfe3e017811949432"),"username":"wangwu","age":20})
       如果不存在_id,执行添加操作
       // 添加插入:db.user.save({"username":"lisi"})
    
    
       数据库的数组集合操作
       // 可以向记录中添加或修改 一个值  不存在就添加 存在就修改
       db.user.update({username:"jack"},{$set:{likes:[]}});
    
       // push 向数组中添加一条记录
       参数可以是数组或字符串
       db.user.update({"username":"jack"},{"$push":{likes:"develpment"}})
    
       // pushAll 向数组中添加多条信息
       参数必须是数组类型
       db.user.update({"username":"jack"},{$pushAll:{likes:["sport","computer"]}})
    
       // pull 向数组中删除一条记录
       参数可以是数组或字符串
       {$pull:{"key":"value"}}删除等于value的值
       从数组内删除一个key等于value的值(有重复的也一并删除)
       db.user.update({"username":"jack"},{"$pull":{likes:"develpment"}});
    
       // $pullAll:删除数组中多个值(有重复的也一并删除)
       参数必须是数组类型
       db.user.update({"username":"jack"},{"$pullAll":{likes:["develpment"]}});
    
       // 删除数组中的最后一个值
       db.user.update({"username":"jack"},{$pop:{likes:1}})
    
       // 删除数组中的第一个值
       db.user.update({"username":"jack"},{$pop:{likes:-1}})
    
       数据库的删除
       db.collection.remove(删除条件):只删除数据,不删除表,不删除索引
       注意:删除 remove方法只有一个条件
       db.user.insert({"username":"david"});
       db.user.insert({"username":"david"});
       db.user.insert({"username":"david"});
    
       先执行前面的插入3条数据  然后在执行后面的删除 删除前面插入的3条数据信息
       db.user.remove({"username":"david"});
    
       // 第2个参数默认为false 删除所有的相关记录 如果设置为true 则只删除 查询到的第一条记录信息
       // 第2个参数 表示是否是单行删除  默认为false 表示不是单行删除
       db.user.remove({"username":"david"},true);
    
       // 空条件 表示删除集合中所有的元素信息
       // 类似清空表中的数据  但是表不删除  mongodb中叫索引(即表索引)不删除
       db.collection.remove({}):删除所有数据,不删除集合,不删除索引
       db.collection.drop():连集合一并删除,删除索引 
       // 删除整个集合  类似删除表的操作 
       // 删除整个文档 和 文档对应的索引  即表名称
       db.dropDatabase(); 删除当前所在的数据库信息
    
    二、数据库的索引
        索引:为了查询提速
        获取索引
        db.collection.getIndexes()
        给username和description创建索引(1升序-1倒叙)
        db.collection.createIndex({"username":1})
        设置username为唯一索引
        db.collection.createIndex({"username":1},{unique:true})
        删除指定索引
        db.collection.dropIndex({"username":1})
        删除所有索引
        db.collection.dropIndexes()
       
    
    三、数据库的备份和恢复
       // 从制度的位置恢复数据库
       // 备份数据库
       mongodump -d blog -o C:/testData
    
       // 恢复数据库
       mongorestore -d blogtest C:/testData/blog
    
    四、修改表名称
        db.tickets.renameCollection("tickets_bak20130510");
    
    
    
       
    
    
    
    
    

    相关文章

      网友评论

          本文标题:MongoDB的安装和使用

          本文链接:https://www.haomeiwen.com/subject/gvxqfxtx.html