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 导入二进制文件

MongoDB基础笔记的更多相关文章

  1. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  2. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  3. MongoDB学习笔记(四)--索引 && 性能优化

    索引                                                                                             基础索引 ...

  4. MongoDB学习笔记(二)--Capped集合 && GridFS存储文件

    Capped集合                                                            Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...

  5. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  6. MongoDB学习笔记一—简介

    MongoDB简介 MongoDB在功能和复杂性之间取得了很好的平衡,并且大大简化了原先十分复杂的任务,它具备支撑今天主流web应用的关键功能:索引.复制.分片.丰富的查询语法,特别灵活的数据模型.与 ...

  7. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  8. MongoDB学习笔记(1):MongoDB简介

    1. MongoDB的特点: (1) 易于使用 MongoDB是一个面向文档的数据库,非关系型数据库.通过在文档中嵌入式文档和数据,面向对象的方法能够仅使用一条记录来表现复杂的层次关系.文档的键和值不 ...

  9. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

随机推荐

  1. HTML的BODY内标签介绍

    一.基本标签 <body> <b>加粗</b> <i>斜体</i> <u>下划线</u> <s>删除线& ...

  2. linux安装zookeeper,安装zkui,zookeeper可视化

    系统要求 支持的平台 ZooKeeper由多个组件组成.某些组件得到广泛支持,其他组件仅在较小的平台上受支持. 客户端是Java客户端库,应用程序使用它连接到ZooKeeper集合. Server是在 ...

  3. pytorch版yolov3训练自己数据集

    目录 1. 环境搭建 2. 数据集构建 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将github库download下来. git cl ...

  4. Spring Boot配置多数据源并实现Druid自动切换

    原文:https://blog.csdn.net/acquaintanceship/article/details/75350653 Spring Boot配置多数据源配置yml文件主数据源配置从数据 ...

  5. 大数据之路week07--day04 (Linux 中查看文件内容的关键字处)

    Linux如何对文件内容中的关键字进行查找   如果是用vi打开文件后,在命令行下输入“/关键字” 如果是在没有打开文件的前提就用"cat 文件名 | grep "关键字" ...

  6. 织梦阿里云OSS解决方案

    准备工作 申请OSS账号,并且创建一个public-read的bucket.这里需要权限为public-read是因为后面需要匿名访问. 详细步骤 1.开启织梦远程附件功能2.现在织梦还有远程附件还有 ...

  7. Thread.sleep()和Thread.currentThread().sleep()区别

    先看一下代码 public class Thread1 extends Thread{ @Override public void run() { try { System.out.println(& ...

  8. el-input 只能输入数字并限制长度

    在上一个博客中,有关于限制长度的使用,本文介绍限制只能输入数字的方法 el-input 代码如下: <el-form-item label="账号" required> ...

  9. 用vue开发一个所谓的数独

    1.前言 最近的后台管理系统页面,功能暂时没有新的需求,就在想首页放什么东西,最近我想到的就是放个所谓的数独,为什么是所谓的数独,因为规则不同于标准的数独,只要求每一行每一列数字不一样就可以了!这个实 ...

  10. TDOA 之 基站接收数据

    基站主要 接收同步节点发来的同步信号,代码里定义为S信息. 以及标签节点发来的定位信号,代码中定义为T信号. 代码中使用中断以及帧过滤功能,对模块只接收自己关心设定好的信息,通过中断告知上层,而不是长 ...