设为首页 收藏本站
查看: 895|回复: 0

[经验分享] 转发记录一篇关于MongoDB入门的博文

[复制链接]

尚未签到

发表于 2015-11-10 14:27:20 | 显示全部楼层 |阅读模式
文章转发至:http://blog.sina.com.cn/s/blog_7f033dcf0101nhqp.html一、是什么?答: MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。二、有什么用?答:MongoDBis 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 databasedatabasetablecollection 集合rowdocument or BSON document文档columnfield 域indexindex table joinsembedded documents and linkingprimary 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 usersdb.users.find( { }, { user_id: 1, status: 1 })等价 SELECT id, user_id, status FROM usersdb.users.find( { status: &quot;A&quot; },{ user_id: 1, status: 1, _id: 0 })等价SELECT user_id, status FROM usersWHERE status = &quot;A&quot;db.users.find( { $or: [ { status: &quot;A&quot; } , { age: 50 } ] })等价SELECT * FROM users WHERE status = &quot;A&quot; 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 &quot;%A%&quot; ORDER BY user_id ASCdb.users.find().count()  等价SELECT COUNT(*) FROM users改:db.users.update({ age: { $gt: 25 } },{ $set: { status: &quot;C&quot; } },{ multi: true }) 等价 UPDATE usersSET status = &quot;C&quot; WHERE age > 25删:db.users.remove( { status: &quot;D&quot; } 等价 DELETE FROM users WHERE status = &quot;D&quot;增(若集合(表)不存在则自动创建users集合(表)):db.users.insert( {user_id: &quot;bcd001&quot;,age: 45,status: &quot;A&quot;} ) 等价 INSERT INTO users(user_id, age,status) VALUES (&quot;bcd001&quot;,45,&quot;A&quot;)
为数据库添加用户:use usersdb.addUser( { user: &quot;toni&quot;,              pwd: &quot;toni&quot;,              roles: [ &quot;readWrite&quot;, &quot;dbAdmin&quot; ]} )
通过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(&quot;127.0.0.1&quot;, 27017);// 根据mongodb数据库的名称获取mongodb对象DB db = m.getDB(&quot;users&quot;);// 校验用户密码是否正确if (!db.authenticate(&quot;toni&quot;, &quot;toni&quot;.toCharArray())) {System.out.println(&quot;连接MongoDB数据库,校验失败!&quot;);} else {System.out.println(&quot;连接MongoDB数据库,校验成功!&quot;);} 关闭连接:    db.requestDone();m.close();插入数据:DBCollection dbCol = db.getCollection(&quot;myCol&quot;);System.out.println(&quot;向数据集中插入数据开始:&quot;);List dbList = new ArrayList();BasicDBObject doc1 = new BasicDBObject();doc1.put(&quot;name&quot;, &quot;荣荣&quot;);doc1.put(&quot;age&quot;, 77);doc1.put(&quot;address&quot;, &quot;深圳&quot;);dbList.add(doc1);dbCol.insert(dbList);System.out.println(&quot;向数据集中插入数据完成!&quot;);删除数据:DBCollection dbCol = db.getCollection(&quot;myCol&quot;);System.out.println(&quot;删除【荣荣】!&quot;);BasicDBObject doc = new BasicDBObject();doc.put(&quot;name&quot;, &quot;荣荣&quot;);dbCol.remove(doc);//把名字等于荣荣的都删掉修改数据:DBCollection dbCol = db.getCollection(&quot;myCol&quot;);DBCursor ret = dbCol.find();BasicDBObject doc = new BasicDBObject();BasicDBObject res = new BasicDBObject();res.put(&quot;age&quot;, 24);System.out.println(&quot;将数据集中的所有文档的age修改成24!&quot;);doc.put(&quot;$set&quot;, res);dbCol.update(new BasicDBObject(), doc, false, true);System.out.println(&quot;更新数据完成!&quot;);查找数据:DBCollection dbCol = db.getCollection(&quot;myCol&quot;);DBCursor ret = dbCol.find();System.out.println(&quot;从数据集中读取数据:&quot;);while (ret.hasNext()) {BasicDBObject bdbObj = (BasicDBObject) ret.next();if (bdbObj != null) {System.out.println(&quot;name:&quot; &#43; bdbObj.getString(&quot;name&quot;));System.out.println(&quot;age:&quot; &#43; bdbObj.getInt(&quot;age&quot;));System.out.println(&quot;address:&quot; &#43; bdbObj.getString(&quot;address&quot;));}}    今天的随便写暂时先到这里吧...  当然你也可以猛击http://docs.mongodb.org/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137612-1-1.html 上篇帖子: ubuntu mongodb报错:mongo 下篇帖子: mongo-node 利用eval属性完成数据库的增删改(可以使用mongodb的原生语言,解决ID自增问题)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表