转发记录一篇关于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了。

重启电脑完成安装。

类比:

 

databasedatabasetablecollection 集合rowdocument or BSON document文档columnfield 域indexindex table joinsembedded 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.

关系型数据库(Oracle等)MongoDB 

练习:

mongo.exe 控制台中的CRUD:查:db.users.find() 等价以前的 SELECT * FROM usersdb.users.find( { }, { user_id: 1, status: 1 })等价 SELECT id, user_id, status FROM usersdb.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 = 50db.users.find( { age: { $gt: 25, $lte: 50 } }) 等价 SELECT * FROM users WHERE age > 25 AND age <= 50db.users.find( { status: /A/ } ).sort( { user_id: 1 } ) 等价 SELECT * FROM users WHERE status like "%A%" ORDER BY user_id ASCdb.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 usersdb.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/


分享给朋友:
您可能感兴趣的文章:
随机阅读: