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

[经验分享] Mongodb的安装与CRUD操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-29 09:28:18 | 显示全部楼层 |阅读模式
What is Mongodb ?        
        Mongo DB是一款开源的非关系型数据库(NoSql)其文档模型自由灵活,可以让你在开发过程中畅顺无比。对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,完全可以满足Web2.0和移动互联网的数据存储需求,其开箱即用的特性也大大降低了中小型网站的运维成本。

安装Mongodb

    来到mongodb官网http://www.mongodb.org/可以在这里找到YUM源,安装对应版本的两个包,一个为服务端,一个为客户端安装包名称如下:
mongo-10gen-2.4.12-mongodb_1.x86_64.rpm
mongo-10gen-server-2.4.12-mongodb_1.x86_64.rpm

添加官方yum源:
vim /etc/yum.repos.d/monogdb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
yum install mongo-10gen.x86_64 mongo-10gen-server.x86_64 -y
创建mongodb数据文件夹
mkdir /mongodb/data/
chown -R mongod.mongod /mongodb/data/
修改配置文件/etc/mongod.conf指定数据目录
dbpath=/mongodb/data


启动Mongodb
service mongod start
wKiom1SfyE6TZq64AAIM0J8VHCY345.jpg
Mongodb的CRUD操作

[iyunv@server1 ~]# mongo
MongoDB shell version: 2.4.5
connecting to: test
> show dbs  //显示数据库
local        0.078125GB
testdb        0.203125GB
> use testdb   //使用数据库,不需要提前创建可以直接使用。
switched to db testdb
> db.testmcoll.insert({Name: "Jerry"})   //指定集合插入数据
> db.testmcoll.insert({Name:"Haiman"})
> show collections    //显示库中的集合
system.indexes
testmcoll
> db.testmcoll.find()   //查找集合中的数据
{ "_id" : ObjectId("549fcaa56e8223a06e8b1f52"), "Name" : "Jerry" }
{ "_id" : ObjectId("549fcadc6e8223a06e8b1f53"), "Name" : "Haiman" }
> db.testmcoll.stats()   //输出集合的状态信息

{
        "ns" : "testdb.testmcoll",
        "count" : 2,
        "size" : 80,
        "avgObjSize" : 40,
        "storageSize" : 4096,
        "numExtents" : 1,
        "nindexes" : 1,
        "lastExtentSize" : 4096,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 0,
        "totalIndexSize" : 8176,
        "indexSizes" : {
                "_id_" : 8176
        },
        "ok" : 1
}
>
> db.testmcoll.drop()   //删除集合
true
多值插入和批量插入
db.users.insert( {   name:"Tom",   age:23,   status:"S",  groups:[ "News","concert" ] } )
for(i=1;i<=100;i++) db.users.insert({Name:"User"+i,Age:i,Gender:"M",Class:["Network","software"]})
删除年龄为18的行
db.users.remove({Age:18})
将user12的年龄改为22

db.users.update({Name:"User10"},{$set:{Age:22}})   //先指定查询条件,然后用逗号分割开要设置的值。
将年龄大于60的用户class字段的值都改为"old-club"
db.users.update({Age:{$gt:60}},{$set:{Class:"old-club"}},{multi:true})  //mongodb默认只修改第一个匹配条件的document,multi:true代表修改整个文档被匹配到的内容
wKioL1Sf8InxXtC5AAHUAWO01x4254.jpg
统计指定集合中文档的个数

db.users.count()
db.collection.find() 比较运算符:

$gt    大于
$gte   大于等于  
$in    存在于指定列表中
$lt    小于
$lte   小于等于
$ne    不等于
$nin   不存在指定列表中

查找出Age大于等于90的用户,只显示Name,Age字段:
db.users.find({Age:{$gte:90}},{Name:1,Age:1})

逻辑运算
$or:或运算  $and:与运算  $not:非运算  $nor:反运算,表示返回不符合所有指定条件的文档。
查找Age大于61并且小于70的用户
db.users.find({$and:[{Age:{$gt:61}},{Age:{$lt:70}}]})
查找Age大于61并且小于70的用户只,显示Name字段
db.users.find({$and:[{Age:{$gt:61}},{Age:{$lt:70}}]},{Name:1})
元素查询


$exists:根据指定字段的存在性挑选文档,语法格式{field:{$exists:}},指定的值为"true"则返回存在指定字段的文档,"false"则返回不存在指定字段的文档;

$mod:将指定字段的值进行取模运算,并返回其余数为指定值得文档

$type:返回指定字段的值类型为指定类型的文档

查找存在Address字段的文档
db.users.find({Address:{$exists:true}})

总结完成!


运维网声明 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-39542-1-1.html 上篇帖子: mongodb在linux上的安装 下篇帖子: mongodb的安装以及主从同步
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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