当前位置:数据库 > DB2 >>

mongoDB入门指南、示例

mongoDB入门指南、示例
 
一、准备工作 
 
1、 下载mongoDB 
 
下载地址:http://www.mongodb.org/downloads 
 
选择合适你的版本 
 
相关文档:http://www.mongodb.org/display/DOCS/Tutorial 
 
2、 安装mongoDB 
 
A、 不解压模式: 
 
将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默认端口27017,db保存的路径是系统C硬盘目录的根目录的/data/db目录。也就是说,如果你的mongoDB-xxx.zip在E盘,那么你需要在C盘下建立data/db目录。mongoDB不会帮你建立这个目录的。 
 
 
然后运行mongo即可连接到test数据库,你就可以进行数据操作。运行help显示帮助命令行。 
 
 
B、 解压模式 
 
 
将下载下来的mongoDB-xxx.zip解压到任意目录,找到bin目录,运行mongod.exe就可以启动mongoDB,默认端口27017,db保存的路径是当前zip所在硬盘目录的根目录的/data/db目录。也就是说,如果你的mongoDB-xxx.zip在E盘,那么你需要在E盘下建立data/db目录。mongoDB不会帮你建立这个目录的。 
 
 
然后运行mongo即可连接到test数据库,你就可以进行数据操作。运行help显示帮助命令行。 
 
 
3、 简单测试 
 
 
> 2+4 
> db 
test 
> //第一次插入数据会创建数据库 
Fri May 20 16:47:39 malformed UTF-8 character sequence at offset 27 
error2:(shellhelp1) exec failed: malformed UTF-8 character sequence at offset 27 
> db.foo.insert({id: 2011, userName: 'hoojo', age: 24, email: "hoojo_@126.com"}); 
> db.foo.find(); 
{ "_id" : ObjectId("4dd62b0352a70cbe79e04f81"), "id" : 2011, "userName" : "hoojo", 
"age" : 24, "email" : "hoojo_@126.com" } 
上面完成了简单运算,显示当前使用的数据库,以及添加数据、查询数据操作 
 
 
  
 
 
二、DB shell数据操作 
 
 
shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的。 
 
 
Ø 数据库 
 
 
  
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(); 
  
 
 
三、Collection聚集集合操作 
 
 
Ø 查看聚集集合基本信息 
 
 
  
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}}); 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,