Win+R进入Dos命令窗口,输入cmd,进入MongoDB exe文件的所在目录,比如我的在E:\MongoDB\bin,分别执行:“E:”回车,然后:"cd mongodb/bin" 回车

输入“mongo”,开始操作数据库,我这里用的是2.6.7版本

说明:命令是区分大小写


操作命令

  show dbs 显示已有的数据库

  use 数据库名 跟MSSQL一样,使用这个数据库

  show collections  显示所有的聚集集合(相当于关系型数据库中的表)

  db.dropDatabase() 删除当前使用的数据库

  db 查看当前使用的数据库名字(或者:db.getName())

  db.stats() 查看当前数据库的一些信息

  db.repairDatabase()  修复数据库

  version() 查看MongoDB版本

  db.getMongo() 查看当前DB连接地址

  db.getPrevError() 查询之前的错误消息

  db.resetError()  清除错误消息


数据库用户

db.createUser(
{
user:"root",
pwd:"root",
roles:
[
{
role:"userAdminAnyDatabase",
db:"admin"
}
]
}
)

  上面的代码,表示创建用户,执行前先use你要使用的数据库,创建的用户只属于这个数据库,不是全局用户,不信切到其他数据库,然后show users下

roles是角色类型,可以show roles 查看所有的角色,db不清楚什么,没查到相关文档,默认就当前数据库名吧

  db.addUser() 不推荐使用

  db.changeUserPassword("root", "123456")  修改用户密码,第一个参数是要修改的用户名,第二个是新密码

  db.dropUser("sa")  删除当前数据库下的一个用户

  db.dropAllUsers()  删除当前数据库下的所有用户

  db.getUser("test") 获取当前数据库下一个用户的信息

  db.getUsers()  获取当前数据库下的所有用户,同等:show users


集合的操作

  也可以称之为表的操作

  不需要手动的来创建表,直接db.集合名称.insert(保存的JSON数据) 就是既创建集合(集合不存在的前提下),又插入数据

  db.集合名称.drop()  删除集合

  db.getCollection("集合名称")  获取某一个集合的信息,也可以使用 show tables 显示所有的集合

  db.getCollectionNames()  获取当前数据库下所有的集合

  db.printCollectionStats()  获取当前数据库下所有的集合的状态


数据的CRUD

 插入

  db.集合名称.insert({"name":"test","age":12}),注意,插入的JSON数组只能有一条,也就是"{}",当然 ,里面是可以包含子数据的,但是只能有一组这样的数据,否则最终插入的数据,只有第一条,如果插入的JSON为:{"name":"test","age":12},{"name":"demo","age":12},那么最终入库的只有name=test的数据

    使用循环插入测试数据:for(i=0;i<100;i++)db.集合名称.insert({"index":i,"remark":"这里的索引是:"+i}),就好像程序中的写法,还可以拼接字符串,屌炸天

更新:

  db.集合名称.update({x:1},{$set:{y:"zzzzz"}})  更新的第一个参数:{x:1}表示更新的条件,第二个为更新的值,如果不适用$set,则更新的x=1的结果中只有y字段,其他字段会被干掉,$set 操作符为部分更新操作符

  使用set之后内容中置顶的字段会被更新,不存在的字段则会保持原样

  使用上面的更新命令是只能更新查找到的第一条数据,无法全部更新,这也是为了防止误操作,如果需要全部更新,则需要多传入两个参数,如下:

  db.集合名称.update({x:1},{$set:{y:"zzzzz"}},false,true) 注意,这种写法,更新的值必须使用 $set 操作符,否则会报“multi update only workds woith $ operators” 这样的错误

  db.集合名称.update({x:1},{x:1,y:"zzzzz"},true)  后面只跟一个true参数,表示如果查找的数据不存在,则为我插入这条数据

删除:

  db.集合名称.remove({x:1})  这里与更新不同的是,删除会删除掉所有查找的数据

 查询: 

  db.集合名称.find()  查询所有的数据

  db.集合名称.find().skip(10)   查询所有的数据,跳过前10条数据

  db.集合名称.find().limit(10) 查询所有的数据,取前10条数据

  db.集合名称.find().sort({字段:1})  1表示正序,-1表示反序  排序

  以上三个可组合查询用于排序


索引:

  db.集合名称.getIndexes()  获取当前集合已有的索引

  db.集合名称.ensureIndex({x:1})  创建索引,1为正向排序,x=-1为逆向索引,我加了一亿条测试数据,索引建起来可真漫长,所以还是在结构设计之初就建好索引吧,索引在这里对查询的速度提升真是太明显了

  db.集合名称.ensureIndex({x:1,y:1}) 创建复合索引,用于多个条件查询

  


函数:

db.集合名称.count()   当前集合中共有多少条数据

参考资料:

  MongoDB中文文档:http://docs.mongoing.com/manual-zh/

  MongoDB官方文档:http://docs.mongodb.org/manual/

MongoDB一些基本的命令的更多相关文章

  1. mongodb创建副本集命令

    mongodb创建副本集命令 ./mongod --replSet spock --dbpath ../data --smallfiles > config ={... "_id&qu ...

  2. 解决mongodb的安装mongod命令不是内部或外部命令

    1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现以下文件 在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该 ...

  3. MongoDB中导入数据命令的使用(mongoimport)

    MongoDB中导入数据命令的使用(mongoimport) 制作人:全心全意 语法: mongoimport <options> <file> 介绍: 该命令可以将CSV,T ...

  4. MongoDB学习笔记~客户端命令行的使用

    回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...

  5. 【MongoDB】3.详细命令集合

    [注意:MongoDB自动将_id字段设置为主键] -------------------------------------------------------------------------- ...

  6. MongoDB与Mysql常用命令解释

    原文 本文旨在介绍MongoDB,Mysql的常用命令:将MongoDB 和传统的关系型数据库的常用命令对照起来学习,更加便于记忆和理解. MongoDB是由数据库(database/reposito ...

  7. mongodb学习2---常用命令解析

    1,mongodb insert()和save()的相同点和区别区别:若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容.insert({_id : 1, ...

  8. MongoDB 3.0 导入命令

    在MongoDB的bin目录下执行 ./mongoimport -h 192.168.77.129 --db test --collection restaurants --drop --file / ...

  9. Mongodb相关 (Shell命令 / mongoose)

    Mongodb相关 1.创建一个文件夹作为数据库存放的目录 2.打开cmd cd到Mongodb/bin目录去 3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目 ...

  10. mongodb安装使用简单命令

    .window+x,A,管理员进入cmd.cd C:\Program Files\MongoDB\Server\3.4\bin.安装:mongod --dbpath "D:\work\DB\ ...

随机推荐

  1. python实例1:创建一个登陆模块

    实现功能: 1.用户输入账户密码 2.验证账户是否存在于黑名单,如果存在于黑名单,则执行1,否则往下执行 3.验证用户名和密码. 3.1.如果验证成功,则打印欢迎信息并退出程序: 3.2.如果用户名存 ...

  2. C#聚合运算方法

    Aggregate 对集合值执行自定义聚合运算 Average 计算集合平均值 Count 对集合的元素惊醒计数,还可以仅对满足某一谓词函数的元素进行计数 LongCount 对大型集合中的元素进行计 ...

  3. 高性能javascript学习总结(2)--DOM编程

    我们知道,对DOM的操作都是非常的耗性能的,那么为什么会耗性能呢?      文档对象模型(DOM)是一个独立于语言的,使用 XML和 HTML 文档操作的应用程序接口(API).在浏览器中,主要与 ...

  4. LintCode:链表操作(合并与反转)

    描述: (1)翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null ********************** ...

  5. Data Structure Array: Given an array arr[], find the maximum j – i such that arr[j] > arr[i]

    http://www.geeksforgeeks.org/given-an-array-arr-find-the-maximum-j-i-such-that-arrj-arri/ #include & ...

  6. Java多线程系列 JUC锁06 Condition条件

    Condition介绍 Condition中提供了一组类似于Object中的监视器方法.与Lock配合可以完成等待通知模式. Lock lock = new ReentrantLock(); Cond ...

  7. web框架详解之 tornado 四 模板引擎、session、验证码、xss

    一.模板引擎 基本使用 继承,extends 页面整体布局用继承 导入,include 如果是小组件等重复的那么就用导入 下面是目录 首先在controllers里面创建一个文件,文件里面是页面类 # ...

  8. log4net性能小探

    初步测试了Log4性能.Appender架构如下. 一般客户端,使用FileAppender,把Log记录在本地磁盘. <lockingModel type="log4net.Appe ...

  9. 中美贸易战再次开启,世界两极化进程正在加快形成!..... Copyright: 1688澳洲新闻网 Read more at: https://www.1688.com.au/world/international/2018/06/17/369368/

    中美贸易战再次开启,世界两极化进程正在加快形成! https://www.1688.com.au/world/international/2018/06/17/369368/

  10. 访问虚拟机中的架设的Web服务器

    环境: 1.虚拟机中安装了CentOS,虚拟机使用NAT的方式 2.在CentOS中安装了APACHE 并且使用 http://127.0.0.1可以正常访问,通过ifconfig查到IP地址是 19 ...