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. Mac下XAMPP环境中安装MySQLdb

    环境: Mac OS X. Mac下安装MySQLdb模块着实多了些步骤. 用easy_install或者pip安装时有两大问题,"mysql_config not found"和 ...

  2. vim 光标的移动和跳转文件的位置

    刚启动vim进入的就是命令模式 在命令模式下 h等于左箭头 j等于下箭头 k等于上箭头 l等于右箭头 想要多次移动可以使用30j或30↓向下移动30行 在命令模式下输入0跳到行头 在命令模式下输入$跳 ...

  3. Centos下MySQL数据库主从双向同步配置

    MYSQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务 ...

  4. css 分析

    .important.warning {background:silver;} .important .warning {background:silver;} //上面有什么区别? //1.2个选择 ...

  5. 同一台电脑关于多个SSH KEY管理

    运用shh -T -v git@github.com查看具体出错信息,再根据信息来调试    原文链接: http://yijiebuyi.com/blog/f18d38eb7cfee860c117d ...

  6. Neutron Callback System

    用于core and service components之间的通信,传递resource的lifecycle events (e.g. before creation, before deletio ...

  7. Source not found The source attachment does not contain the source for the file MethodBeforeAdvice.class

  8. 分享知识-快乐自己:遍历Map集合

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...

  9. Python基础-列表推导式

    python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...

  10. chrome浏览器的跨域设置-包括版本49前后两种设置 ,windows&mac

    做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提 ...