一、cmd连接mongodb 服务

进入mongodb的bin目录下:[D:\mongodb3.2.5\bin]$ mongo 127.0.0.1:27017

常用查询:

show dbs 查看所有数据库

use dbName 进入当前数据库

show tables 查看该数据库下的集合

二、curd操作

查询:

1.查全部:db.mydb2_collection.find();

2.查询一条:db.mydb2_collection.findOne();

插入:db.mydb2_collection.insert({m:1});

修改:db.mydb_collection.update({x:1},{x:999});

删除:db.mydb_collection.remove({c:2});

三、索引

  优点:可以加快与所有相关的查询速度
  缺点:增加磁盘空间,降低写入性能

索引类型:

  id索引:自动创建的
  单键索引:
  多键索引:db.mydb2_collection.insert({x:[1,2,3,4,5]});
  复合索引:当我们的查询条件不知一个的时候,就需要建立复合索引
    db.mydb2_collection.ensureIndex({x:1,y:1}); 创建
    db.mydb2_collection.find({x:1,y:2}); 使用
  过期索引:1.在一段时间后会过期的索引 2、在索引过期后相应的数据会被删除
  使用场景:适合存储在一些时间后会失效的数据比如用户登录信息,存储的日志
  创建方式:
    注意:存储在过期索引的字段必须是指定时间类型,必须是ISODate或者ISODate数组,不能使用时间戳,否则不能自动删除。
      如果是数组,则按照最小的时间进行删除
  过期索引不是复合索引
    删除时间是不精确的(删除过程是后台程序没60秒执行一次的进程操作的,删除操作本身也需要时间) 最小时间差60秒
  全文索引:对字符串与字符串数组创建全文可搜索的索引
  插入数据:db.mydb2_collection.insert({arrticle:"aa bb cc gg hh"});
  查询:db.mydb2_collection.find({$text:{$search:"aa"}});
      db.mydb2_collection.find({$text:{$search:"aa bb ee"}}); //多关键字 或者 的关系
      db.mydb2_collection.find({$text:{$search:"aa bb -cc"}}); //不包含cc
      db.mydb2_collection.find({$text:{$search:"\"aa\"\"bb\"\"cc\""}});//多关键字 且的关系
全文索引相似度:
    查询:db.mydb2_collection.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}});
       db.mydb2_collection.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}//排序

索引的属性:
  name属性
    指定名字创建索引:db.mydb2_collection.ensureIndex({c:1,y:1},{name:"normal_index"});
    根据名字删除索引:db.mydb2_collection.dropIndex("normal_index");
  unique索引的唯一性:
    db.mydb2_collection.ensureIndex({m:1,n:1},{unique:true})
    作用:在做添加时如果存在就不插入,否则插入
  稀疏性:sparse
    创建:db.mydb2_collection.ensureIndex({m:1},{sparse:true});
    查询强制使用索引:db.mydb2_collection.find({m:{$exists:false}}).hint("m_1");
  地理位置索引:
    2d:
      创建2d平面索引: db.mydb_location.ensureIndex({w:"2d"});
      位置表示方式:经纬度[经度,纬度]
      取值范围:经度:[-180,180] 纬度[-90,90]
      插入:db.mydb_location.insert({w:[2,1]});
    near查询:
        查查与[1,1]最近的点:db.mydb_location.find({w:{$near:[1,1]}});
        查询与[1,1]相近 10的点:db.mydb_location.find({w:{$near:[1,1],$maxDistance:10}});
    形状查询 $geoWithin:
         矩形 $box: db.mydb_location.find({w:{$geoWithin:{$box:[[0,0],[2,2]]}}});
         圆形$center:db.mydb_location.find({w:{$geoWithin:{$center:[[0,0],2]}}});
          多边形$polygon:db.mydb_location.find({w:{$geoWithin:{$polygon:[[0,0],[2,2],[0,2]]}}});
     geoNear查询:
        db.runCommand({geoNear:"mydb_location",near:[1,2],maxDistance:3,num:1});
  2dsphere索引球面地理位置:

四、安全机制

MongoDB安全机制:
1.物理分离(最安全):不现实
2.网络隔离
3.防火墙的隔离:给固定的ip访问权限
4.用户名和密码

创建用户
  db.createUser({user:"jalja",pwd:"jalja",roles:[{role:"userAdmin",db:"mydb"},{role:"read",db:"test"}]});

  权限:read、readWrite、dbAdmin、dbOwner、userAdmin

  在mongo.conf 中添加 auth =true 开启权限认证

  使用 用户名密码连接:mongo 127.0.0.1:27017 -u jalja -p jalja

  mongodb 的角色
  1、数据库角色
  2、集群角色
  3、数据备份角色
  4、其他特殊权限

Mongodb 的基本使用的更多相关文章

  1. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  2. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  3. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  4. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  5. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  6. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

  8. MongoDB系列(一):简介及安装

    什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...

  9. [原]分享一下我和MongoDB与Redis那些事

    缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...

  10. 用MongoDB分析合肥餐饮业

    看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...

随机推荐

  1. 关于L'Hopital法则

    1.首先需要使用 罗尔定理 函数f(x)在闭区间[a,b]连续在开区间(a,b)可微,如果f(a)=f(b),那么至少存在一点c使函数导数f'(c)=0 注意需要再(a,b)可微,如果函数有角点,断点 ...

  2. Java程序,猜大小游戏

    一个骰子,通常有1.2.3.4.5.6等6种点数.我们将1.2.3记作“小”,将4.5.6记作“大”.猜中显示“猜对了”,猜错记作“猜错了”之类的字样.本程序可以用Java实现. import jav ...

  3. Poj.Grids 2951 浮点数求高精度幂

    2951:浮点数求高精度幂 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个实数 R ( 0.0 < R < 99.999 ) ,要求写程序精确计算 R 的 n 次方. ...

  4. Beta版本的贡献率百分比

    我真的是服了..刚刚写完最后一次作业,还感叹了一下终于完成了最后的工作,一看群还得发一篇. 贡献率这种东西不是应该默认是100%除以团队人数的吗,有没有搞错啊,这样很容易引起团队不融洽的啊. 0313 ...

  5. jQUery 1.9中被删除的API

    jQuery1.9删除了一些在以前版本中已经过时的api,想要把那些不够安全的.缺乏效率的.用处不大的,以及带有误导的特性统统去掉.如果你想升级你的jquery版本,但又使用了如下被删除的api的话, ...

  6. Activity劫持实例与防护手段

    原文地址:Activity劫持实例与防护手段 作者:cjxqhhh (本文只用于学习技术,提高大家警觉,切勿用于非法用途!)   什么叫Activity劫持   这里举一个例子.用户打开安卓手机上的某 ...

  7. 解决hadoop启动后datanode无法启动问题

    hadoop部署完成后datanode无法启动问题解决 1.检查是否有遗留的hadoop进程还在运行,如果有的话,先stop-all.sh或kill杀掉: 2.在master节点上,删除/tmp/ha ...

  8. struts2.5框架使用通配符指定方法常见错误

    struts2.5框架使用通配符指定方法(常见错误) 在学习struts框架时经常会使用到通配符调用方法,如下: <package name="shop" namespace ...

  9. android wifi ANR问题分析总结

    android wifi ANR问题分析总结 1 看看main进程阻塞在那里? 2 调用关系的函数阻塞在那里? 3 最终阻塞函数的阻塞前的log以及状态

  10. minigui编译

    1, libminigui修改单 file: src/kernel/desktop.c func: def_mouse_handler keywords: MSG_DT_RBUTTONUP break ...