Mongodb的安装与CRUD操作
admin
2023-04-12 13:21:51
0

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 Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/gpgcheck=0enabled=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

Mongodb的安装与CRUD操作

Mongodb的CRUD操作


[root@server1 ~]# mongo

MongoDB shell version: 2.4.5

connecting to: test

> show dbs  //显示数据库

local0.078125GB

testdb0.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代表修改整个文档被匹配到的内容

Mongodb的安装与CRUD操作

统计指定集合中文档的个数

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}})


在shell中操作mongodb

sql="db.srt.find([],{final_txt:1,_id:0})"

echo "$sql" | mongo -u quxue -p NbftlXtC6oTa gotye --shell >m.txt


总结完成!

相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...