MongoDB常用操作命令大全

如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。

一、数据库常用命令
1、Help查看命令提示


代码如下:

help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();

2、切换/创建数据库


代码如下:

use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库

3、查询所有数据库


代码如下:

show dbs;

4、删除当前使用数据库


代码如下:

db.dropDatabase();

5、从指定主机上克隆数据库


代码如下:

db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库

6、从指定的机器上复制指定数据库数据到某个数据库


代码如下:

db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中

7、修复当前数据库


代码如下:

db.repairDatabase();

8、查看当前使用的数据库


代码如下:

db.getName();
db; db和getName方法是一样的效果,都可以查询当前使用的数据库

9、显示当前db状态


代码如下:

db.stats();

10、当前db版本


代码如下:

db.version();

11、查看当前db的链接机器地址


代码如下:

db.getMongo();

二、Collection聚集集合
1、创建一个聚集集合(table)


代码如下:

db.createCollection(“collName”, {size: 20, capped: 5, max: 100});//创建成功会显示{“ok”:1}
//判断集合是否为定容量db.collName.isCapped();

2、得到指定名称的聚集集合(table)


代码如下:

db.getCollection("account");

3、得到当前db的所有聚集集合


代码如下:

db.getCollectionNames();

4、显示当前db所有聚集索引的状态


代码如下:

db.printCollectionStats();

三、用户相关
1、添加一个用户


代码如下:

db.addUser("name");
db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读

2、数据库认证、安全模式


代码如下:

db.auth("userName", "123123");

3、显示当前所有用户


代码如下:

show users;

4、删除用户


代码如下:

db.removeUser("userName");

四、聚集集合查询
1、查询所有记录


代码如下:

db.userInfo.find();
相当于:select* from userInfo;

默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”
但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了。
2、查询去掉后的当前聚集集合中的某列的重复数据


代码如下:

db.userInfo.distinct("name");
会过滤掉name中的相同数据
相当于:select distict name from userInfo;

3、查询age = 22的记录


代码如下:

db.userInfo.find({"age": 22});
相当于: select * from userInfo where age = 22;

4、查询age > 22的记录


代码如下:

db.userInfo.find({age: {$gt: 22}});
相当于:select * from userInfo where age >22;

5、查询age < 22的记录


代码如下:

db.userInfo.find({age: {$lt: 22}});
相当于:select * from userInfo where age <22;

6、查询age >= 25的记录


代码如下:

db.userInfo.find({age: {$gte: 25}});
相当于:select * from userInfo where age >= 25;

7、查询age <= 25的记录


代码如下:

db.userInfo.find({age: {$lte: 25}});

8、查询age >= 23 并且 age <= 26


代码如下:

db.userInfo.find({age: {$gte: 23, $lte: 26}});

9、查询name中包含 mongo的数据


代码如下:

db.userInfo.find({name: /mongo/});
//相当于%%
[code]select * from userInfo where name like ‘%mongo%';

10、查询name中以mongo开头的


代码如下:

db.userInfo.find({name: /^mongo/});
select * from userInfo where name like ‘mongo%';

11、查询指定列name、age数据


代码如下:

db.userInfo.find({}, {name: 1, age: 1});
相当于:select name, age from userInfo;

当然name也可以用true或false,当用ture的情况下河name:1效果一样,如果用false就是排除name,显示name以外的列信息。
12、查询指定列name、age数据, age > 25


代码如下:

db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
相当于:select name, age from userInfo where age >25;

13、按照年龄排序


代码如下:

升序:db.userInfo.find().sort({age: 1});
降序:db.userInfo.find().sort({age: -1});

14、查询name = zhangsan, age = 22的数据


代码如下:

db.userInfo.find({name: 'zhangsan', age: 22});
相当于:select * from userInfo where name = ‘zhangsan' and age = ‘22';

15、查询前5条数据


代码如下:

db.userInfo.find().limit(5);
相当于:selecttop 5 * from userInfo;

16、查询10条以后的数据


代码如下:

db.userInfo.find().skip(10);
相当于:select * from userInfo where id not in (
selecttop 10 * from userInfo
);

17、查询在5-10之间的数据


代码如下:

db.userInfo.find().limit(10).skip(5);

可用于分页,limit是pageSize,skip是第几页*pageSize
18、or与 查询


代码如下:

db.userInfo.find({$or: [{age: 22}, {age: 25}]});
相当于:select * from userInfo where age = 22 or age = 25;

19、查询第一条数据


代码如下:

db.userInfo.findOne();
相当于:selecttop 1 * from userInfo;
db.userInfo.find().limit(1);

20、查询某个结果集的记录条数


代码如下:

db.userInfo.find({age: {$gte: 25}}).count();
相当于:select count(*) from userInfo where age >= 20;

21、按照某列进行排序


代码如下:

db.userInfo.find({sex: {$exists: true}}).count();
相当于:select count(sex) from userInfo;

五、索引
1、创建索引


代码如下:

db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});

2、查询当前聚集集合所有索引


代码如下:

db.userInfo.getIndexes();

3、查看总索引记录大小


代码如下:

db.userInfo.totalIndexSize();

4、读取当前集合的所有index信息


代码如下:

db.users.reIndex();

5、删除指定索引


代码如下:

db.users.dropIndex("name_1");

6、删除所有索引索引


代码如下:

db.users.dropIndexes();

六、修改、添加、删除集合数据
1、添加


代码如下:

db.users.save({name: ‘zhangsan', age: 25, sex: true});

添加的数据的数据列,没有固定,根据添加的数据为准
2、修改


代码如下:

db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);
相当于:update users set name = ‘changeName' where age = 25;
db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);
相当于:update users set age = age + 50 where name = ‘Lisi';
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
相当于:update users set age = age + 50, name = ‘hoho' where name = ‘Lisi';

3、删除


代码如下:

db.users.remove({age: 132});

4、查询修改删除


代码如下:

db.users.findAndModify({
    query: {age: {$gte: 25}},
    sort: {age: -1},
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});
db.runCommand({ findandmodify : "users",
    query: {age: {$gte: 25}},
    sort: {age: -1},
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});

update 或 remove 其中一个是必须的参数; 其他参数可选。
参数    详解     默认值
query    查询过滤条件    {}
sort    如果多个文档符合查询过滤条件,将以该参数指定的排列方式选择出排在首位的对象,该对象将被操作    {}
remove    若为true,被选中对象将在返回前被删除    N/A
update    一个 修改器对象
N/A
new    若为true,将返回修改后的对象而不是原始对象。在删除操作中,该参数被忽略。    false
fields    参见Retrieving a Subset of Fields (1.5.0+)
All fields
upsert    创建新对象若查询结果为空。 示例 (1.5.4+)
false
七、语句块操作
1、简单Hello World


代码如下:

print("Hello World!");

这种写法调用了print函数,和直接写入"Hello World!"的效果是一样的;
2、将一个对象转换成json


代码如下:

tojson(new Object());
tojson(new Object('a'));

3、循环添加数据


代码如下:

> for (var i = 0; i < 30; i++) {
... db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});
... };

这样就循环添加了30条数据,同样也可以省略括号的写法


代码如下:

> for (var i = 0; i < 30; i++) db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});

也是可以的,当你用db.users.find()查询的时候,显示多条数据而无法一页显示的情况下,可以用it查看下一页的信息;
4、find 游标查询


代码如下:

>var cursor = db.users.find();
> while (cursor.hasNext()) {
    printjson(cursor.next());
}

这样就查询所有的users信息,同样可以这样写


代码如下:

var cursor = db.users.find();
while (cursor.hasNext()) { printjson(cursor.next); }

同样可以省略{}号
5、forEach迭代循环


代码如下:

db.users.find().forEach(printjson);

forEach中必须传递一个函数来处理每条迭代的数据信息
6、将find游标当数组处理


代码如下:

var cursor = db.users.find();
cursor[4];

取得下标索引为4的那条数据
既然可以当做数组处理,那么就可以获得它的长度:cursor.length();或者cursor.count();
那样我们也可以用循环显示数据


代码如下:

for (var i = 0, len = c.length(); i < len; i++) printjson(c[i]);

7、将find游标转换成数组


代码如下:

> var arr = db.users.find().toArray();
> printjson(arr[2]);

用toArray方法将其转换为数组
8、定制我们自己的查询结果
只显示age <= 28的并且只显示age这列数据


代码如下:

db.users.find({age: {$lte: 28}}, {age: 1}).forEach(printjson);
db.users.find({age: {$lte: 28}}, {age: true}).forEach(printjson);

排除age的列


代码如下:

db.users.find({age: {$lte: 28}}, {age: false}).forEach(printjson);

9、forEach传递函数显示信息


代码如下:

db.things.find({x:4}).forEach(function(x) {print(tojson(x));});

八、其他
1、查询之前的错误信息


代码如下:

db.getPrevError();

2、清除错误记录


代码如下:

db.resetError();

查看聚集集合基本信息
1、查看帮助  db.yourColl.help();
2、查询当前集合的数据条数  db.yourColl.count();
3、查看数据空间大小 db.userInfo.dataSize();
4、得到当前聚集集合所在的db db.userInfo.getDB();
5、得到当前聚集的状态 db.userInfo.stats();
6、得到聚集集合总大小 db.userInfo.totalSize();
7、聚集集合储存空间大小 db.userInfo.storageSize();
8、Shard版本信息  db.userInfo.getShardVersion()
9、聚集集合重命名 db.userInfo.renameCollection("users"); 将userInfo重命名为users
10、删除当前聚集集合 db.userInfo.drop();

代码如下:

show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use <db name>:切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

(0)

相关推荐

  • mongodb 数据库操作--备份 还原 导出 导入

    一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p. 如果导出本机的数据库,可以去掉-h. 如果是默认端口,可以去掉--port. 如果想导出所有数据库,可以去掉-d. 2,导出所有数据库 [root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/ connecte

  • MongoDB数据库文档操作方法(必看篇)

    前面的话 本文将详细介绍MongoDB数据库关于文档的增删改查 如果数据库中不存在集合,则MongoDB将创建此集合,然后将文档插入到该集合中 要在单个查询中插入多个文档,可以在insert()命令中传递文档数组 可以使用js语法,插入多个文档 [save()] 插入文档也可以使用db.post.save(document). 如果不在文档中指定_id,那么save()方法将与insert()方法一样自动分配ID的值.如果指定_id,则将以save()方法的形式替换包含_id的文档的全部数据.

  • 基于MongoDB数据库的数据类型和$type操作符详解

    前面的话 本文将详细介绍MongoDB数据库的数据类型和$type操作符 类型 数字 备注 Double 1 双精度浮点数 - 此类型用于存储浮点值 String 2 字符串 - 这是用于存储数据的最常用的数据类型.MongoDB中的字符串必须为UTF-8 Object 3 对象 - 此数据类型用于嵌入式文档 Array 4 数组 - 此类型用于将数组或列表或多个值存储到一个键中 Binary data 5 二进制数据 - 此数据类型用于存储二进制数据 Undefined 6 已废弃 Objec

  • MongoDB入门教程之细说MongoDB数据库的增删查改操作

    看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然 傻眼了,擦,竟然开启不了,仔细观察"划线区域"的信息,发现db文件夹下有一个类似的"lock file"阻止了mongodb的开启,接下来我们要做的就 是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享.  一: Insert操作 上一篇也说过,文档是采用"K-V"格式存储的,如果大家对JSO

  • MongoDB常用操作命令大全

    如:如果你想创建一个"myTest"的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫"myTest"的数据库. 一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help(); 2.切换/创建数据库 复制代码 代码如下: use you

  • db2数据库常用操作命令大全

    本文详细汇总了DB2的常用操作命令,分享给大家.对于使用db2的朋友可以参考下. DB2数据库管理客户端从v9.7版本之后就不再带有控制中心了,而是使用 Data Studio Client.安装 DB2 数据库产品期间不会应用许可证密钥.但是,下列产品没有激活 CD,因此会在安装这些产品的过程中自动应用其许可证:DB2 Express-C 和 DB2 Connect 个人版.此外,DB2 个人版也是一个特殊案例.虽然 DB2 个人版具有激活 CD,但是会在安装该产品的过程中自动应用其许可证.

  • MongoDB常用数据库命令大全

    一.MongoDB 数据库常用操作命令 1.Help查看命令提示 help db.help(); db.yourColl.help(); 2.切换/创建数据库 use raykaeso; 当创建一个集合(table)的时候会自动创建当前数据库 3.查询所有数据库 show dbs; 4.删除当前使用数据库 db.dropDatabase(); 5.从指定主机上克隆数据库 db.cloneDatabase("127.0.0.1"); 将指定机器上的数据库的数据克隆到当前数据库 6.从指定

  • Linux常用命令大全(超全面)

    日常使用命令 开关机命令 1.shutdown –h now:立刻进行关机 2.shutdown –r now:现在重新启动计算机 3.reboot:现在重新启动计算机 4.su -:切换用户:passwd:修改用户密码 5.logout:用户注销 常用快捷命令 1.tab = 补全 2.ctrl + l -:清屏,类似clear命令 3.ctrl + r -:查找历史命令(history):ctrl+c = 终止 4.ctrl+k = 删除此处至末尾所有内容 5.ctrl+u = 删除此处至开

  • WindowsXP系统 CMD常用命令大全

    Windows CMD常用命令 前言: cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一般Windows 的各种版本都与其兼容,用户可以在Windows 系统下运行DOS,中文版Windows XP中的命令提示符进一步提高了与DOS下操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件. 一. 常用命令 1.cd命令 //进入d盘 D: //进入F盘

  • Redis基本数据类型String常用操作命令

    目录 Redis数据类型String操作命令 一.append 追加字符串 二.strlen 获取key 字符串长度 三.自增.自减 四.字符串range 五.替换字符串 六.设置值及其过期时间 setex setnx 七.批量操作 1. mset.mget 2. msetnx 八.设置一个json对象 九.getset 先获取再设置 Redis数据类型String操作命令 一.append 追加字符串 append name 2222 二.strlen 获取key 字符串长度 strlen n

  • docker 环境搭建、docker 与容器常用指令大全

    目录 一.Docker 环境搭建 1. 准备工作(已有 Linux 环境可省略) 2. 安装 Docker 3. 设置 ustc 镜像 二.Docker/容器操作命令汇总 1. Docker 操作命令 2. 镜像相关命令 3. 查看容器 4. 创建容器 5. 停止与启动容器 6. 文件挂载 7. 目录挂载 8. 查看容器 IP 地址 9. 删除容器 一.Docker 环境搭建 1. 准备工作(已有 Linux 环境可省略) 在这里我们用 VM 虚拟机 + CentOS 的环境进行 Docker

  • MongoDB常用命令小结

    MongoDB常用命令: 超级用户相关: use admin #增加或修改用户密码 db.addUser(ixigua,'pwd') #查看用户列表 db.system.users.find() #用户认证 db.auth(ixigua,'pwd') #删除用户 db.removeUser('mongodb') #查看所有用户 show users #查看所有数据库 show dbs #查看所有的collection show collections #查看各collection的状态 db.p

  • MyBatis常用标签大全

    _parameter _parameter 表示当前传入的参数,如果查询的时候传入的参数只有一个,则使用 _parameter E getById(Integer id); <select id="getById" parameterType="int" resultMap="BaseResultMap"> SELECT * FROM 库名.表名 WHERE id = #{_parameter} </select> if判

  • Node.js中npm常用命令大全

    npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载.安装.上传以及管理已经安装的包. npm install 安装模块 基础语法 npm install (with no args, in package dir) npm install [<@scope>/]<name> npm install [<@scope>/]<name>@<tag>

随机推荐