Mongo-x

一、安装:

下载:

https://www.mongodb.org/

图片

二、启动:

找到安装路径,添加到环境变量,运行

1
mongod.exe  --dbpath "d:/db/"

这样就建立好了数据库,登陆数据库,默认没有用户名和密码,所以在公网上可以找到很多没有密码的数据库:

1
2
3
>mongo.exe
MongoDB shell version: 3.0.7
connecting to: test

三、操作数据库:

查看数据库:

1
2
3
4
5
> show dbs;
local 0.078GB
mao1 0.078GB
test 0.078GB
yumao 0.078GB

选择数据库:

1
2
> use test;
switched to db test

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

1
2
3
4
5
6
7
8
> db.getCollectionNames();
[
"ad.set",
"admin",
"alipay.competition",
"alipay.log",
"alipay.yubi.log",
............

聚集集合查询

1、查询所有记录

1
2
3
4
> db.user.find();
=select* from user;
默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。注意:键入it命令不能带“;”
但是你可以设置每页显示数据的大小,用DBQuery.shellBatchSize= 50;这样每页就显示50条记录了

2、查询去掉后的当前聚集集合中的某列的重复数据

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

3、查询age = 22的记录

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

4、查询age > 22的记录

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

5、查询age < 22的记录

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

6、查询age >= 25的记录

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

7、查询age <= 25的记录

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

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

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

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

1
2
3
db.userInfo.find({name: /mongo/});
//相当于%%
select * from userInfo where name like ‘%mongo%’;

10、查询name中以mongo开头的

1
2
db.userInfo.find({name: /^mongo/});
select * from userInfo where name likemongo%’;

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

1
2
3
db.userInfo.find({}, {name: 1, age: 1});
相当于:select name, age from userInfo;
当然name也可以用truefalse,当用ture的情况下河name:1效果一样,如果用false就是排除name,显示name以外的列信息。

12、查询指定列name、age数据, age > 25

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

13、按照年龄排序

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

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

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

15、查询前5条数据

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

16、查询10条以后的数据

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

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

1
2
db.userInfo.find().limit(10).skip(5);
可用于分页,limit是pageSize,skip是第几页*pageSize

18、or与 查询

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

19、查询第一条数据

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

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

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

21、按照某列进行排序

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

删除数据库:

1
2
> db.dropDatabase();
{ "dropped" : "test", "ok" : 1 }

将远程数据库备份到本地:

这里要使用:mongodump.exe

1
2
3
4
5
6
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 
-------###--------
如果没有用户谁,可以去掉-u和-p
如果导出本机的数据库,可以去掉-h
如果是默认端口,可以去掉--port
如果想导出所有数据库,可以去掉-d

图片

导出数据

1
2
>mongoexport -d db -c user -o user.dat
-d代表指明从哪个数据库中导出数据;-c代表从哪个集合中导出数据;-o指明导出的数据输出到哪个文件中。

导出成功后,打开user.dat文件,导出的数据如下所示:

1
2
{ "_id" : { "$oid" : "4eed9f9ca939118694cf05e4" }, "name" : "ming", "age" : 2 }
{ "_id" : { "$oid" : "4ef1f3cf3bd18218e6bdfa31" }, "name" : "lisi", "age" : "20" }

导出为CVS文件

如果要导出集合中指定字段的数据存到CVS文件中,可以使用如下命令:

1
2
3
$ mongoexport -d sports -c user -f phone --type=csv -o d:/user.csv
connected to: localhost
exported 102563 records

导出的user.cvs文件的内容如下:

1
2
{ "_id" : { "$oid" : "4eed9f9ca939118694cf05e4" }, "name" : "ming" }
{ "_id" : { "$oid" : "4ef1f3cf3bd18218e6bdfa31" }, "name" : "lisi" }

导入数据库:

常用命令格式

1
2
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径  
--drop的意思是,先删除所有的记录,然后恢复

恢复所有数据库到mongodb中

1
2
>mongorestore "d:/db/"  
#这里的路径是所有库的备份路径

还原指定的数据库

1
2
>mongorestore -d admin "d:/db/admin"   
#tank这个数据库的备份路径

文章目录
  1. 1. 一、安装:
  2. 2. 二、启动:
  3. 3. 三、操作数据库:
    1. 3.0.1. 查看数据库:
    2. 3.0.2. 选择数据库:
    3. 3.0.3. 显示当前db所有聚集索引的状态
    4. 3.0.4. 聚集集合查询
      1. 3.0.4.1. 1、查询所有记录
      2. 3.0.4.2. 2、查询去掉后的当前聚集集合中的某列的重复数据
      3. 3.0.4.3. 3、查询age = 22的记录
      4. 3.0.4.4. 4、查询age > 22的记录
      5. 3.0.4.5. 5、查询age < 22的记录
      6. 3.0.4.6. 6、查询age >= 25的记录
      7. 3.0.4.7. 7、查询age <= 25的记录
      8. 3.0.4.8. 8、查询age >= 23 并且 age <= 26
      9. 3.0.4.9. 9、查询name中包含 mongo的数据
      10. 3.0.4.10. 10、查询name中以mongo开头的
      11. 3.0.4.11. 11、查询指定列name、age数据
      12. 3.0.4.12. 12、查询指定列name、age数据, age > 25
      13. 3.0.4.13. 13、按照年龄排序
      14. 3.0.4.14. 14、查询name = zhangsan, age = 22的数据
      15. 3.0.4.15. 15、查询前5条数据
      16. 3.0.4.16. 16、查询10条以后的数据
      17. 3.0.4.17. 17、查询在5-10之间的数据
      18. 3.0.4.18. 18、or与 查询
      19. 3.0.4.19. 19、查询第一条数据
      20. 3.0.4.20. 20、查询某个结果集的记录条数
      21. 3.0.4.21. 21、按照某列进行排序
    5. 3.0.5. 删除数据库:
    6. 3.0.6. 将远程数据库备份到本地:
    7. 3.0.7. 导出数据
      1. 3.0.7.1. 导出为CVS文件
    8. 3.0.8. 导入数据库:
|