zoukankan      html  css  js  c++  java
  • MongoDB常用操作总结

    ====================================MGDB的操作======================================
    
    0.创建数据库时使用(use 数据库名)来创建,但如果use命令之后没有进行其它操作(如:给定list)直接退出,那么use命令执行出来的数据库将会从缓冲池中被清除,并没有真正    创建!;
    
    1.use命令不但能声明创建数据库而且还能可以***切换数据库***;
    
    2.删除一个数据库时需切换到该数据库后使用 db.dropDatabase();语句即可;
    
    3.查询当前登录用户有多少个数据库则使用 show dbs 命令;
    
    ====================================MGDB的list操作======================================
    
    5.查询当前数据库中有几个list使用 show collections  命令 ;
    
    6.从一个数据库删除一个list的时候使用 db.list名.drop();
    
    7.给数据库增加一个list(list中必须要有元素)时先切换到当前数据库后使用 db.list名.insert({name:"asd",age:"12"});语句即可;
    
    ====================================MGDB的list中的数据操作======================================
    
    8.在list中插入一条数据使用 db.list名.insert({name:"asd",age:"12"});
    
      8.1-> 如果数据库中声明了一个特殊的list(如:d-d)要给这样的list插入数据需要使用 db.getCollection("list名").text.insert({...}); 命令,所以在命名上需要注意;
    
      8.2-> 可以使用for循环进行使用insert 进行批量数据插入;
    
      8.3-> 如果在向list插入数据的时候 自己命名了"_id"键并产生重复数据时,使用insert则会报错,使用save则会变为修改上条"_id"键相同的数据;
    
    9.更新一条list数据的命令是 db.list名.update({name:"asd"},{$set:{name:"bbb"}});***$set:操作符属于局部更新如果不使用会造成其它键值对被清掉***
    
      9.1-> 批量更新使用 db.list名.update({查询器},{更新器},false,true); 命令第四个参数是批量的意思,否则只更新第一条记录;
    
      ==============================$更新器==============================
    
      9.2-> (db.list名.update({查询器},{$set:{...}},false,true);)$set更新器中的内容如果不存在这个键 则加上这个键值对;
    
      9.3-> db.list名.update({num:5},{$inc:{num:正整数或负整数}},false,true); 如为正整数则加上相应的数组,负整数则减去相应的数字;
    
      9.4-> db.list名.update({num:5},{$unset:{num:任意正整数}},false,true); 会将把num的键值对删除掉;
    
         ==============================$更新器针对list中值为数组的键值对数据==============================
    
         9.5.1-> db.list名.update({num:5},{$push:{books:"aa"}},false,true); 如果这个list中存在一条或几条带有books为键值为数组的键值对则该数组进行更新,没有则创建,如果键存在而值不是数组形式则会报错;
    
         9.5.2-> db.list名.update({num:5},{$pushAll:{books:["aa","bb"]}},false,true); 和上条同理只是批量更新;
    
         9.5.3-> db.list名.update({num:5},{$addToSet:{books:["aa"]}},false,true); 如果books中存在aa则更新插入否则不执行;
    
         9.5.4-> db.list名.update({num:5},{$pop:{books:-1}},false,true); 如果books:-1时从值数组中删除第一个值,若为books:1则从最后一个位置删除一个值;
    
         9.5.5-> db.list名.update({num:5},{$pull:{books:"a"}},false,true); 删除book中值为a的值;
    
         9.5.6-> db.list名.update({num:5},{$pull:{books:["a","b"]}},false,true); 批量删除book中值为a和b的值;
    
         9.5.7-> ***批量判断式的更新值数组操作***  db.list名.update({num:5},{$addToSet:{books:{$each:["a","b"]}}},false,true); 如果books中存在a或b就不填加,否则就添加到books中去;
    
    10.删除一条list元素db.list名.remove({"name" : "gg"});
    
    11.删除所有记录 使用db.list名.remove();时索引并不删除***如果数据量及其庞大的话使用db.list名.drop();效率比较高***;
    
    12.如果数据存在就选择更新操作数据不存在就选择插入操作(insertOrupdate)使用  db.list名.update({查询器},{更新器},true);
    

      

  • 相关阅读:
    HDFS datanode源码分析
    hive udaf开发入门和运行过程详解
    hive原生和复合类型的数据加载和使用
    tomcat部署web应用(转)
    HDFS namenode源码分析
    HDFS dfsclient写文件过程 源码分析
    hive中UDTF编写和使用(转)
    HDFS dfsclient读文件过程 源码分析
    MapReduce源码分析总结(转)
    DataRabbit 轻量的数据访问框架(09) -- IDataSchemaAccesser
  • 原文地址:https://www.cnblogs.com/zzq-include/p/4279166.html
Copyright © 2011-2022 走看看