转发记录一篇关于MongoDB入门的博文

文章转发至:http://blog.sina.com.cn/s/blog_7f033dcf0101nhqp.html

一、是什么?
答:  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
二、有什么用?
答: MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.
  它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
  • 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 支持复制和故障恢复。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 自动处理碎片,以支持云计算层次的扩展性。
  • 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
  • 文件存储格式为BSON(一种JSON的扩展)。
  • 可通过网络访问。
三、怎么用?
我的环境是win7
所以安装,
Important:If you are running any edition of Windows Server 2008 R2 or Windows 7, please install a hotfix to resolve an issue with memory mapped files on Windows.
假如你的环境是以上windows版本则应该安装补丁程序,猛击:http://support.microsoft.com/kb/2731284

具体安装

1.解压mongodb-win32-i386-2.4.8.zip ,创建路径C:\Program Files\mongodb(可以不在C盘) ,将解压后的整个bin文件复制在此文件夹下。

2.C:\Program Files\mongodb 下建立Data文件夹 C:\Program Files\mongodb\data ,然后分别建立db,log两个文件夹,至此mongodb下有以下文件夹

C:\Program Files\mongodb\bin

C:\Program Files\mongodb\data\db

C:\Program Files\mongodb\data\log

在log文件夹下创建一个日志文件MongoDB.log,即C:\Program Files\mongodb\data\log\MongoDB.log

完成以上工作后,你为奇怪为什么要建立这些文件夹(因为,Mongodb安装需要这些文件夹,默认安装是不用创建,但是文件都为安装到C:\data\下)

 

3. 运行cmd.exe 进入DOS命中界面

> cd C:\Program Files\mongodb\bin

> C:\Program Files\mongodb\bin>mongod -dbpath "C:\Program Files\mongodb\data\db"

执行此命令即将mongodb的数据库文件创建到C:\Program Files\mongodb\data\db 目录,等待一会儿后不出意外已经初步安装成功。

然后再执行

 

> cd C:\Program Files\mongodb\bin

> C:\Program Files\mongodb\bin>mongod --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

此时将为系统创建名为MongoDB的服务,也即以后一般开机系统会自动启动MongoDB了。

重启电脑完成安装。

类比:

 

关系型数据库(Oracle等) MongoDB 
database database
table collection 集合
row document or BSON document文档
column field 
index index 
table joins embedded documents and linking

primary key

Specify any unique column or column combination as primary key.

primary key

In MongoDB, the primary key is automatically set to the _id field.

aggregation (e.g. group by)

aggregation pipeline

See the SQL to Aggregation Mapping Chart.

练习:

mongo.exe  控制台中的CRUD:
查:
db.users.find() 等价以前的 SELECT * FROM users
db.users.find( { }, { user_id: 1, status: 1 })等价 SELECT id, user_id, status FROM users
db.users.find( { status: "A" },{ user_id: 1, status: 1, _id: 0 })等价SELECT user_id, status FROM usersWHERE status = "A"
db.users.find( { $or: [ { status: "A" } , { age: 50 } ] })等价SELECT * FROM users WHERE status = "A" OR age = 50
db.users.find( { age: { $gt: 25, $lte: 50 } }) 等价 SELECT * FROM users WHERE age > 25 AND age <= 50
db.users.find( { status: /A/ } ).sort( { user_id: 1 } ) 等价 SELECT * FROM users WHERE status like "%A%" ORDER BY user_id ASC
db.users.find().count()   等价SELECT COUNT(*) FROM users
改:
db.users.update({ age: { $gt: 25 } },{ $set: { status: "C" } },{ multi: true }) 等价 UPDATE usersSET status = "C" WHERE age > 25
删:
db.users.remove( { status: "D" } 等价 DELETE FROM users WHERE status = "D"
增(若集合(表)不存在则自动创建users集合(表)):
db.users.insert( {user_id: "bcd001",age: 45,status: "A"} ) 等价 INSERT INTO users(user_id, age,status) VALUES ("bcd001",45,"A")

为数据库添加用户:
use users
db.addUser( { user: "toni",
                     pwd: "toni",
                     roles: [ "readWrite", "dbAdmin" ]
} )

通过java连接MongoDB(不好意思我的编程母语是java - -!):
  First, be sure to include the driver jar mongo.jar in your classpath
  前提,需要引入mongo.jar包,
 
创建连接
// Mongo(p1, p2):p1表示IP地址,p2表示端口
Mongo m = new Mongo("127.0.0.1", 27017);
// 根据mongodb数据库的名称获取mongodb对象
DB db = m.getDB("users");
// 校验用户密码是否正确
if (!db.authenticate("toni", "toni".toCharArray())) {
System.out.println("连接MongoDB数据库,校验失败!");
} else {
System.out.println("连接MongoDB数据库,校验成功!");
关闭连接:
      db.requestDone();
m.close();
插入数据:
DBCollection dbCol = db.getCollection("myCol");
System.out.println("向数据集中插入数据开始:");
List dbList = new ArrayList();
BasicDBObject doc1 = new BasicDBObject();
doc1.put("name", "荣荣");
doc1.put("age", 77);
doc1.put("address", "深圳");
dbList.add(doc1);
dbCol.insert(dbList);
System.out.println("向数据集中插入数据完成!");
删除数据:
DBCollection dbCol = db.getCollection("myCol");
System.out.println("删除【荣荣】!");
BasicDBObject doc = new BasicDBObject();
doc.put("name", "荣荣");
dbCol.remove(doc);//把名字等于荣荣的都删掉
修改数据:
DBCollection dbCol = db.getCollection("myCol");
DBCursor ret = dbCol.find();
BasicDBObject doc = new BasicDBObject();
BasicDBObject res = new BasicDBObject();
res.put("age", 24);
System.out.println("将数据集中的所有文档的age修改成24!");
doc.put("$set", res);
dbCol.update(new BasicDBObject(), doc, false, true);
System.out.println("更新数据完成!");
查找数据:
DBCollection dbCol = db.getCollection("myCol");
DBCursor ret = dbCol.find();
System.out.println("从数据集中读取数据:");
while (ret.hasNext()) {
BasicDBObject bdbObj = (BasicDBObject) ret.next();
if (bdbObj != null) {
System.out.println("name:" + bdbObj.getString("name"));
System.out.println("age:" + bdbObj.getInt("age"));
System.out.println("address:" + bdbObj.getString("address"));
}
}
      今天的随便写暂时先到这里吧...   当然你也可以猛击 http://docs.mongodb.org/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值