zoukankan      html  css  js  c++  java
  • MongoDB基础笔记

    MongoDB

    show dbs 查看当前的数据库
    use test 选库
    show tables/collections 查看当前库下的文档
    db.help() 查看帮助
    db.createCollection('user'); 显式的创建文档'user'
    db.goods.insert({_id:1,name:'NOKIA',price:29.9}); 隐式创建文档'goods'并插入数据
    db.goods.drop(); 删除goods文档
    db.dropDatabase(); 删除数据库
     
    增加多个文档:
    db.collectionName.insert([
    {time:'friday',study:'mongodb'},
    {_id:9,gender:'male',name:'QQ'}
    ])
    删除stu表中sn属性值为001的文档: db.stu.remove({sn:’001’});
    删除stu表中gender属性为m的文档,只删除1行: db.stu.remove({gender:'m'},true);
    删除stu表中的所有数据: db.stu.remove({});
     
    修改文档的某列:db.news.update({name: 'QQ'},{$set:{name: 'MSN'}});
    执行多种修改操作:
    db.stu.update({name:'wukong'},
    {
    $set:{name:'dzsf'},
    $unset:{jingu:1},
    $rename:{sex:'gender'},
    $inc:{age:16}
    });
     
    查询所有文档 所有内容: db.stu.find();
    查询所有文档的gender属性: db.stu.find({},{gender:1});
    查看记录总条数: db.goods.find().count()
     
    比较运算符:$gt(>),$gte(>=),$in(in),$lt(<),$lte(<=),$ne(!=),$nin(not in),$all.
     
    查询主键为32的商品:db.goods.find({goods_id:32});
    查询shop_price大于3的相关记录:db.goods.find({shop_price:{$gt:3}},{goods_id:1,goods_name:1,_id:0}
    取出价格介于100到500之间的商品($and):db.goods.find({$and:[{shop_price:{$gt:100}},{shop_price:{$lt:500}}]} , {goods_name:1,shop_price:1,_id:0}
     
    元素运算符:$exists(某列存在为真),$mod(满足某求余条件为真),$type(数据为某类型为真)。
    取出%5=1即1,6,11,..的数据:db.goods.find({goods_id:{$mod:[5,1]}},{goods_id:1,goods_name:1,_id:0});
    查询出含有age字段的文档:db.stu.find({age:{$exists:1}})
     
    【游标操作】
    1.在Mongodb中一次性插入10000条数据,像使用js一样的for循环操作:
    for(var i=0;i<10000;i++){
    db.bar.insert({_id:i+1,title:'hello'+i,cnt:'aaa'+i});
    };
     
    2.声明游标(取出的是json格式):
    printjson(db.bar.find({_id:{$lte:5}}).next());
     
    3.用while循环来打印游标,避免一个一个的手动操作。
    while(db.bar.find({_id:{$lte:5}}).hasNext()) {
    printjson(mycursorr.next());
    }
     
    4.用for循环来打印游标,更简单。
    for(var cursor=db.bar.find({_id:{$lte:5}});cursor.hasNext();) {
    printjson(cursor.next());
    }
     
    5.游标的迭代函数forEach,自定义回调函数来逐个处理每个单元.
    var mycursor = db.bar.find({_id:{$lte:5}});
    mycursor.forEach(function(obj){printjson(obj)});
     
    6.游标在分页的应用:从第9000条开始取10条数据:
    db.bar.find().skip(9000).limit(10);
     
    【索引】
    查询计划:db.stu.find({sn:99}).explain();
    创建单列索引: db.stu.ensureIndex({sn:1}); #1是升续,2是降续。
    查看所有索引: db.stu.getIndexes();
    删除单个索引:db.stu.dropIndex({sn:1/-1});
    删除所有索引:db.stu.dropIndexes();
    创建多列索引:db.stu.ensureIndex({sn:1,name:1});
    创建子文档索引:db.stu.ensureIndex({filed.subfield:1/-1});
    查询子文档索引:db.stu.find({filed.subfield:1/-1});
    创建唯一索引:db.tea.ensureIndex({email:1},{unique:true});
    创建稀疏索引:db.tea.ensureIndex({email:1},{sparse:true});
    创建哈希索引:db.tea.ensureIndex({email:'hashed'});
    重建索引:db.tea.reIndex();
     
    【用户管理】
    添加用户:db.addUser(用户名,密码,是否只读)
    执行认证:db.auth(用户名,密码);
    修改用户密码:db.changeUserPassword(用户名, 新密码);
    删除用户:db.removeUser(用户名);
     
    【导出与导入】
    mongoexport 导出json和csv格式的文件。
    mongoimport 导入json和csv
    mongodump 导出二进制bson结构的数据及其索引信息
    mongorestore 导入二进制文件
  • 相关阅读:
    插入数据失败提示: Setting autocommit to false on JDBC Connection 自动提交失败
    MyBatis XML配置properties
    mybatis 测试输出SQL语句到控制台配置
    原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误(修改内容有三处
    idea 快捷键汇总
    maven依赖配置和依赖范围
    pom.xml 配置 收藏
    单词的提取
    UVA10815 安迪的第一个字典 Andy's First Dictionary
    UVA11054 Gergovia的酒交易 Wine trading in Gergovia
  • 原文地址:https://www.cnblogs.com/rxbook/p/10912812.html
Copyright © 2011-2022 走看看