`

mongodb在windows下的安装和常用命令

 
阅读更多
1、下载mongodb,地址为:http://www.mongodb.org/downloads
2、将下载后的文件解压到某个文件下,解压后的文件名为
C:\mongodb-win32-i386-[version]或C:\mongodb-win32-x86_64-[version]
3、将此文件夹移动到mongodb文件夹下,命令如下
move C:\mongodb-win32-* C:\mongodb
4、MongoDB需要一个数据文件来保存它的文件,默认的数据路径是C:\data\db,通过命令提示行创建这个目录:
md data
md data\db
5、启动mongodb
C:\mongodb\bin\mongod.exe
若要指定其他目录的数据路径,可以如下执行
C:\mongodb\bin\mongod.exe --dbpath D:\data
6、连接mongodb
开启新的命令提示行,C:\mongodb\bin\mongo.exe
mongo.exe命令默认将连接本机端口号为27017的mongod.exe
7、测试
在mongo.exe命令提示航下,输入以下两个命令在默认的test数据库中的test集合中插入一条记录,然后获取此记录:
db.test.save( { a: 1 } )
db.test.find()
8、停止和关闭服务
net stop MongoDB
C:\mongodb\bin\mongod.exe --remove


常用命令:
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});

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.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();

聚集集合查询

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/});

//相当于%%

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 其中一个是必须的参数; 其他参数可选。




语句块操作

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));});

  • 大小: 45.3 KB
分享到:
评论

相关推荐

    MongoDB常用命令批处理

    MongoDB常用命令批处理,包括安装服务/启动服务/带授权认证的服务/移除服务等。其中.bat为windows平台,.sh为linux平台(只测过centos7)

    MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)

    一、安装和配置   MongoDB 的官方下载站是 http://www.mongodb.org/downloads,可以去上面下载最新的安装... 在 D:\mongodb\ 目录下创建 db 和 logs 文件夹 (和 bin 目录同级),  随后在 logs 文件夹内创建 mongo

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    2.5.2 在Windows平台下的下载与安装 2.5.3 在Linux平台下的下载与安装 2.6 MongoDB shell的使用 2.6.1 启动Shell 2.6.2 使用Shell对MongoDB的基本操作 2.6.3 使用Shell的诀窍 2.6.4 特殊的集合名...

    mongodb详细资料(讲义+代码)

    2.在Windows和Linux下安装启动MongoDB、图形化管理界面Compass的安装使用 3.掌握MongoDB基本常用命令实现数据的CRUD 4.掌握MongoDB的索引类型、索引管理、执行计划 5.使用Spring Data MongoDB完成文章评论业务的...

    MongoDB教程之基本管理命令

    1. 启动和停止MongoDB:  执行mongod命令启动MongoDB服务器。mongod有很多可配置的选项,我们通过mongod –help可以查看所有选项,这里仅介绍一些主要选项:  代码如下:  –dbpath:  缺省情况下数据库的数据...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    2.5.2 在Windows平台下的下载与安装 2.5.3 在Linux平台下的下载与安装 2.6 MongoDB shell的使用 2.6.1 启动Shell 2.6.2 使用Shell对MongoDB的基本操作 2.6.3 使用Shell的诀窍 2.6.4 特殊的集合名...

    .NET连接MongoDB数据库实例教程

    使用代码让我们从Mongo数据库的一些细节和基本命令开始,并最终介绍如何创建一个可连接至Mongo数据库的.NET Windows应用。Mongo数据库MongoDB 是一个跨平台、文档导向的数据库系统,它被归类为“NoSQL”数据库。...

    mongodb使用心得简单总结

    1.mongodb特性 1)mongo是一个面向文档的数据库,它集合了nosql和sql数据库两方面的特性。 2)所有实体都是在首次使用时创建。 3)没有严格的事务特性,但是它保证任何一次数据变更都是原子性的。 4)也没有固定的...

    N-blog-master.zip

    用过 ruby 和 gem 的同学会比较熟悉,通常我们会把 gem 源切到国内的淘宝镜像,这样在安装和更新一些包的时候比较快。nrm 同理,用来切换官方 npm 源和国内的 npm 源(如: cnpm),当然也可以用来切换官方 npm 源和...

    《MySQL数据库入门》教学设计.docx

    教师首先向学生演示如何在MySQL官网上,下载适用于Windows平台的5.5版本的安装包和适用于Linux平台的RPM安装包,然后,向学生演示如何在Windows和Linux平台下安装和配置MySQL。要求学生能够根据帮助文档正确安装...

    Discord.js-Bot:Cryptonix X的开源版本和任何discord.js机器人的基本框架

    JS-Discord-Bot Cryptonix X的开源版本和任何discord.js机器人的基本框架。 集成MongoDB作为数据库解决方案!已针对Discord.js V12 woohoo更新HarutoHiroki制造的#4000要求Node.js的推荐12.16.0及以上- git- Visual...

    RobotFramework常用库简介.pdf

    RobotFramework常⽤库简介 常⽤库简介 标准库 Robot Framework...(Java Web Start 是基于 Java 技术的应⽤程序的⼀种部署解决⽅案,它是连接计算机和 Internet 的便捷通道,允许⽤户在完全脱离 Web 的情况下运⾏和管

    云计算第二版

    7.3.3 Eucalyptus常用命令的示例和说明 238 习题 240 参考文献 240 第8章 其他开源云计算系统 241 8.1 简介 241 8.1.1 Cassandra 241 8.1.2 Hive 242 8.1.3 VoltDB 242 8.1.4 Enomaly ECP 243 8.1.5 Nimbus 244 ...

    ByTheStreamWebsite:这是xishuipang网站的主要存储库。 西水ip是由中国福音教会创办和维护的基督教杂志

    基本设定该网站使用node.js和express.js作为其服务器,并使用Mongodb作为其数据库。 如果您想提供帮助,请确保在本地计算机上安装了nodejs和expressjs。 由陈力开发,罗向宇。 :copyright:2018中国福音教会。 保留...

    mongdb文件型数据库开发实例

     MongoDB的安装的Windows,Ubuntu的或Mac OS X的安装很简单,基本上只是MongoDB的zip文件下载,额外的,并运行命令- MongoDB-  folder/bin/mongod元。  使用的mongod启动MongoDB的。 $./mongod Tue Sep ...

    工作区:工作区是企业级Ruby on Rails电子商务平台

    在安装通过在终端中运行以下命令来运行的演示版: curl -s https://raw.githubusercontent.com/workarea-commerce/workarea/master/demo/install | bash 如果您使用的是MacOS或Windows,则需要将Docker的内存分配...

Global site tag (gtag.js) - Google Analytics