`
jamie.wang
  • 浏览: 349851 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MongoDB学习——初探

阅读更多
MongoDB初探

简介

MongoDB是开源的基于文档的数据库系统,存储基于BSON(类似JSON)的文档,支持复杂的数据结构,支持全部的索引,且提供了强大的查询接口,提供了良好的水平扩展支持,可以存储海量数据,被认为是mysql的替代品。

安装

MongoDB有针对CentOSrpm安装包

加入源,由于是10gen开发的,所以源名为10gen

# vi /etc/yum.repos.d/10gen.repo,加入:

[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
gpgcheck=0
enabled=1

yum安装:

# yum install mongo-10gen mongo-10gen-server

基本操作

启动/停止/重启

安装好后,保持默认的配置,就可以用其自带脚本启动,停止了

# service mongod start

MongoDB自带了一个webconsole,默认端口:28017

在浏览器中输入

http://localhost:28017/

即可看到目前的状态



 

基本的CRUD操作

MongoDB自带了命令行客户端

$ mongo
MongoDB shell version: 2.4.5
connecting to: test
Server has startup warnings:
Mon Jul 29 14:09:40.625 [initandlisten]
Mon Jul 29 14:09:40.625 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Mon Jul 29 14:09:40.625 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Mon Jul 29 14:09:40.625 [initandlisten] ** Note that journaling defaults to off for 32 bit and is currently off.
Mon Jul 29 14:09:40.625 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Mon Jul 29 14:09:40.626 [initandlisten]

默认链接到test数据库

向集合user里加一条记录,注意MongoDB里面的集合可以认为是mysql的表

> db.user.insert({'name':'jack','age':20})

 查询刚刚插入的记录:

> db.user.find({'name':'jack'})
{ "_id" : ObjectId("51f717e2214a69388a1d7424"), "name" : "jack", "age" : 20 }
>

 更新记录:

全部更新

第一个参数是条件,第二个是值

> db.user.update({"name":"jack"}, { "name" : "jack", "age" : 50, "address" : { "country" : "CN", "city" : "HongKong" }, "fav" : [ "apple", "banana" ] })
>
> db.user.find({"name":"jack"})
{ "_id" : ObjectId("51f717e2214a69388a1d7424"), "name" : "jack", "age" : 50, "address" : { "country" : "CN", "city" : "HongKong" }, "fav" : [ "apple", "banana" ] }

部分更新

$set如果存在该字段,则修改,如果不存在则增加

$inc,指定字段递增

> db.user.update({"name":"jack"}, {$inc:{"age":1}})
>
> db.user.find({"name":"jack"})
{ "_id" : ObjectId("51f730c604f4bacbc87f67f2"), "name" : "jack", "age" : 54, "address" : { "country" : "CN", "city" : "Macao" }, "fav" : [ "apple", "banana" ], "email" : "yeah@yahoo.com" }
>
> db.user.update({"name":"jack"}, {$set:{"gender":"male"}})
>
> db.user.find({"name":"jack"})
{ "_id" : ObjectId("51f730c604f4bacbc87f67f2"), "address" : { "country" : "CN", "city" : "Macao" }, "age" : 54, "email" : "yeah@yahoo.com", "fav" : [ "apple", "banana" ], "gender" : "male", "name" : "jack" }

InsertOrUpdate

指定第三个参数为true

> db.user.update({"name":"hellen"}, {"name":"hellen", "age":19}, true)
>
> db.user.find()
{ "_id" : ObjectId("51f7312b04f4bacbc87f67f3"), "name" : "allen", "age" : 20, "address" : { "country" : "US", "city" : "NewYork" }, "email" : "allen@hotmail.com" }
{ "_id" : ObjectId("51f730c604f4bacbc87f67f2"), "address" : { "country" : "CN", "city" : "Macao" }, "age" : 54, "email" : "yeah@yahoo.com", "fav" : [ "apple", "banana" ], "gender" : "male", "name" : "jack" }
{ "_id" : ObjectId("51f740fb2c6c3ba0d71db410"), "name" : "hellen", "age" : 19 }

删除记录:

> db.user.remove({"name":"jack"})
>
> db.user.find({})
>

 注意:remove如果不加条件会删除所有的记录,且不能恢复。

find不加条件查询所有的记录

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

相关推荐

    2013中国数据库大会ppt(1)

    MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf eXtremeDB内存数据库性能提升方案分享.pdf 运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP...

    2013中国数据大会ppt(2)

    MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf eXtremeDB内存数据库性能提升方案分享.pdf 运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP...

    2013中国数据库大会ppt(3)

    MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf eXtremeDB内存数据库性能提升方案分享.pdf 运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf DM7 MPP架构——同时满足OLAP与OLTP...

    simpleToDoApp

    【简易待办事项应用——初探全栈开发与基础技术】 在编程世界中,全栈开发者是指能够处理从客户端到服务器端所有层面的开发者。在这个名为"simpleToDoApp"的项目中,我们可以看到一个初学者如何通过实践来掌握全栈...

    2013年中国数据库大会PPT第一部分

    12.MongoDB at Qihoo 360.pdf 13.MySQL Cluster实战初探 .pdf 14.SAP HANA深度剖析.pdf 15.eXtremeDB内存数据库性能提升方案分享.pdf 16.运用之妙 存乎一心—— Oracle优化器案例与算法解析.pdf 17.DM7 MPP架构——...

    kitchat:第一个 Node.js 应用

    **奇聊——Node.js与Sails框架初探** 在当今的Web开发领域,JavaScript已经不再局限于浏览器端,而是成为了一种全栈式编程语言。Node.js的出现使得JavaScript能够运行在服务器端,处理数据和构建复杂的后端服务。在...

Global site tag (gtag.js) - Google Analytics