MongoDB一些基本的命令
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一些基本的命令的更多相关文章
- mongodb创建副本集命令
mongodb创建副本集命令 ./mongod --replSet spock --dbpath ../data --smallfiles > config ={... "_id&qu ...
- 解决mongodb的安装mongod命令不是内部或外部命令
1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现以下文件 在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该 ...
- MongoDB中导入数据命令的使用(mongoimport)
MongoDB中导入数据命令的使用(mongoimport) 制作人:全心全意 语法: mongoimport <options> <file> 介绍: 该命令可以将CSV,T ...
- MongoDB学习笔记~客户端命令行的使用
回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...
- 【MongoDB】3.详细命令集合
[注意:MongoDB自动将_id字段设置为主键] -------------------------------------------------------------------------- ...
- MongoDB与Mysql常用命令解释
原文 本文旨在介绍MongoDB,Mysql的常用命令:将MongoDB 和传统的关系型数据库的常用命令对照起来学习,更加便于记忆和理解. MongoDB是由数据库(database/reposito ...
- mongodb学习2---常用命令解析
1,mongodb insert()和save()的相同点和区别区别:若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容.insert({_id : 1, ...
- MongoDB 3.0 导入命令
在MongoDB的bin目录下执行 ./mongoimport -h 192.168.77.129 --db test --collection restaurants --drop --file / ...
- Mongodb相关 (Shell命令 / mongoose)
Mongodb相关 1.创建一个文件夹作为数据库存放的目录 2.打开cmd cd到Mongodb/bin目录去 3.执行mongod --dbpath "第一项创建的文件夹(数据库数据存放目 ...
- mongodb安装使用简单命令
.window+x,A,管理员进入cmd.cd C:\Program Files\MongoDB\Server\3.4\bin.安装:mongod --dbpath "D:\work\DB\ ...
随机推荐
- wap网站即手机端网页SEO优化注意事项及方法
定位和页面设计: 无论是PC端还是移动端,网站 都要考虑清楚消费群体的定位问题.虽然智能手机用户数量非常普及,但是要明白中国的大部分手机用户使用的还是2G网络,一直高 喊的3G.4G手机用户只有大约1 ...
- 牛客小白月赛1 G あなたの蛙は旅⽴っています【DP】
题目链接 https://www.nowcoder.com/acm/contest/85/G 思路 按照题解上的方式 存取数据 然后DP一下 就可以了 AC代码 #include <cstdio ...
- Hadoop Pig
Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境. Pig内部 ...
- 在ubuntu上为android系统编写Linux驱动程序【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6568411 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的 ...
- perl常用字符串函数
1.$position = index(string,substring,skipchars): 该函数返回子串substring在字符串string中的位置,如果不存在,则返回-1:参数skipch ...
- github与eclipse结合使用
github是现在流行的代码托管平台,今天以eclipse为例讲解github的使用,新建项目,提交eclipse项目到github,新建分支,合并分支 1.github上新建项目 记下githug项 ...
- vue2.0 构建单页应用最佳实战
vue2.0 构建单页应用最佳实战 前言 我们将会选择使用一些 vue 周边的库vue-cli, vue-router,vue-resource,vuex 1.使用 vue-cli 创建项目2.使 ...
- 分享知识-快乐自己:Linux下安装 erlang 及 RabbitmMQ
Linux下安装 erlang 及 RabbitmMQ: 下载地址一 下载地址二 下载地址三 安装依赖: yum install ncurses-devel 安装 erlang: 1):下载Erla ...
- 第二章 python基础(二)
第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...
- MessFormat的简单使用
MessageFormat用法java.text.MessageFormat 作用:MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置. Messa ...