很全的 Mongodb数据库学习文档 与 php操作mongodb.docx

上传人:b****6 文档编号:4282591 上传时间:2022-11-28 格式:DOCX 页数:23 大小:24.40KB
下载 相关 举报
很全的 Mongodb数据库学习文档 与 php操作mongodb.docx_第1页
第1页 / 共23页
很全的 Mongodb数据库学习文档 与 php操作mongodb.docx_第2页
第2页 / 共23页
很全的 Mongodb数据库学习文档 与 php操作mongodb.docx_第3页
第3页 / 共23页
很全的 Mongodb数据库学习文档 与 php操作mongodb.docx_第4页
第4页 / 共23页
很全的 Mongodb数据库学习文档 与 php操作mongodb.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

很全的 Mongodb数据库学习文档 与 php操作mongodb.docx

《很全的 Mongodb数据库学习文档 与 php操作mongodb.docx》由会员分享,可在线阅读,更多相关《很全的 Mongodb数据库学习文档 与 php操作mongodb.docx(23页珍藏版)》请在冰豆网上搜索。

很全的 Mongodb数据库学习文档 与 php操作mongodb.docx

很全的Mongodb数据库学习文档与php操作mongodb

Mongodb数据库学习文档

一.Mongodb的基本概念

1.Mongodb数据库的命名规则:

不能是空字符串(“”)

不得含有‘’(空格)、.、$、/、\、和\0(空字符)

应全部小写

最多64字节

2.Mongodb数据库的安装和启动

在windows上安装与启动:

第一步.先下载适用windows的最新mongodb版本的稳定产品。

第二步.把压缩文件解压到自己指定的文件夹(或D:

\),为了方便,将解压后的文件夹重命名为mongodb,然后在D盘根文件夹下建一个mongo文件夹。

第三步.启动mongodb服务器,执行如下操作

打开命令提示符窗口(启动>运行>,输入cmd并按确定),

C:

\DocumentsandSettings\Administrator>d:

(指向D盘)

D:

\>cdmongod(指向D盘下的mongodb文件夹)

D:

\mongodb>cdbin(指向mongodb文件夹下的bin文件夹)

D:

\mongodb\bin>mongod-dbpathd:

//mongo(指定数据库的存放文件夹)

然后出现:

WedOct1909:

38:

16MongoDBstarting:

pid=1064port=27017dbpath=d:

//mongo32-b

it

**NOTE:

whenusingMongoDB32bit,youarelimitedtoabout2gigabytesofdata

**seehttp:

//blog.mongodb.org/post/137788967/32-bit-limitations

WedOct1909:

38:

16dbversionv1.6.5,pdfileversion4.5

WedOct1909:

38:

16gitversion:

0eb017e9b2828155a67c5612183337b89e12e291

WedOct1909:

38:

16sysinfo:

windows(5,1,2600,2,'ServicePack3')BOOST_LI

B_VERSION=1_35

WedOct1909:

38:

16[initandlisten]waitingforconnectionsonport27017

WedOct1909:

38:

16[websvr]webadmininterfacelisteningonport28017

WedOct1909:

39:

45[initandlisten]connectionacceptedfrom127.0.0.1:

6819#1

至此Mongodb服务器启动成功。

(注:

启动mongodb服务器以后,切不可关闭dos窗口,否则服务器会自动关闭)

第四步.启动shell。

重新打开一个dos窗口,输入

C:

\DocumentsandSettings\Administrator>d:

D:

\>cdmongodb

D:

\mongodb>cdbin

D:

\mongodb\bin>mongo

另一种方法是,在Windows资源管理器中导航至C:

\mongo\bin并双击mongo.exe。

无论选择哪种方法来启动shell都会出现

MongoDBshellversion:

1.6.5

connectingto:

test

>

现在已经连接到测试服务器。

2.MongoDB在Linux下的安装配置

1.对于32位的linux

$curlhttp:

//downloads.mongodb.org/linux/mongodb-linux-i686-1.4.4.tgz>mongo.tgz

$tarxzfmongo.tgz

对于64位的linux

$curlhttp:

//downloads.mongodb.org/linux/mongodb-linux-x86_64-1.4.4.tgz>mongo.tgz

$tarxzfmongo.tgz如果没有安装curl先安装apt-getinstallcurl

2.创建数据文件夹默认情况下,MongoDB会在/data/db/这个文件夹存放数据,这个文件夹需要自己手动创建。

通过如下方式创建:

$addusermongodb$passwdmongodb$sudomkdir-p/data/db/$sudochown`id-u`/data/db$chown-Rmongodb:

mongodb/data当然可以通过--dbpath命令指定MongoDB将数据存储到另外的目录中去。

3.让数据库运行起来在控制台中:

$nohup./mongodb-xxxxxxx/bin/mongod&$./mongodb-xxxxxxx/bin/mongo>db.foo.save({a:

1})>db.foo.find()结果是:

{"_id":

ObjectId("4cd181a31415ffb41a094f43"),"a":

1}OK!

二.Mongodb指令及相关操作

a)show命令

ii.在dos中输入showdb查看当前所有的数据库

>showdbs

admin

alphabet

color

colors

local

mymongo

test

>

iii.showcollections查看当前数据库下所有的表

>usemymongo

switchedtodbmymongo

>showcollections

colors

shell.colors

system.indexes

>

b)use命令

i.指定当前所需要使用的数据库,如果没有,新建一个库。

如果这个库没有数据,则系统在一段时间后将销毁

ii.use[databaseName]

c)insert指令

i.添加数据,数据形式为json格式

ii.如果insert添加的数据中没有表,则会新建一张表并且在将数据添加入表中

iii.db.[表名].insert()

>db.dingdan.insert(

...{

...order_id:

109384,

...order_date:

newDate("12/04/2010"),

...customer:

{

...name:

"JoeBloggs",

...company:

"XYZInc.",

...phone:

"(555)123-4567"

...},

...payment:

{

...type:

"Cash",

...amount:

4075.99,

...paid_in_full:

true

...},

...items:

[

...{

...sku:

"ABC1200",

...description:

"Asampleproduct",

...quantity:

1,

...price_per_unit:

75.99,

...},{

...sku:

"XYZ3400",

...description:

"Anexpensiveproduct",

...quantity:

2,

...price_per_unit:

2000

...}

...],

...cashier_id:

340582242

...}

...)

>

d)save指令

i.保存数据

ii.如果表中无此数据则将数据添加入表中

iii.如果表中存在此数据,则将新的数据修改

iv.db.[表名].save()

db.collection.save(x)

x就是要更新的对象,只能是单条记录。

如果在collection内已经存在一个和x对象相同的"_id"的记录。

mongodb就会把x对象替换collection内已经存在的记录,否则将会插入x对象,如果x内没有_id,系统会自动生成一个再插入。

相当于上面update语句的upsert=true,multi=false的情况。

db.test0.save({count:

40,test1:

"OK"});_id系统会生成

db.test0.save({_id:

40,count:

40,test1:

"OK"});如果test0内有_id等于40的,会替换,否则插入。

e)remove指令

i.删除表中所指定的一条数据

ii.db.[表名].remove()

在colors表中添加一条记录

>db.colors.save({"color":

"112233"})

>db.colors.find()

{"_id":

ObjectId("4e9bc2024fadb58af17b2f01"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2374fadb58af17b2f02"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2384fadb58af17b2f03"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2394fadb58af17b2f04"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2394fadb58af17b2f05"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23a4fadb58af17b2f06"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23a4fadb58af17b2f07"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23b4fadb58af17b2f08"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23b4fadb58af17b2f09"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23c4fadb58af17b2f0a"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23c4fadb58af17b2f0b"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23d4fadb58af17b2f0c"),"color":

"ff0000"}

{"_id":

ObjectId("4e9e3f435240000000005a2d"),"color":

"112233"}

删除添加的那条记录

>db.colors.remove({"color":

"112233"})

>db.colors.find()

{"_id":

ObjectId("4e9bc2024fadb58af17b2f01"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2374fadb58af17b2f02"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2384fadb58af17b2f03"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2394fadb58af17b2f04"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc2394fadb58af17b2f05"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23a4fadb58af17b2f06"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23a4fadb58af17b2f07"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23b4fadb58af17b2f08"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23b4fadb58af17b2f09"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23c4fadb58af17b2f0a"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23c4fadb58af17b2f0b"),"color":

"ff0000"}

{"_id":

ObjectId("4e9bc23d4fadb58af17b2f0c"),"color":

"ff0000"}

f)update指令

i.修改数据

ii.db.[表名].update()

db.collection.update(criteria,objNew,upsert,multi)

criteria:

update的查询条件,类似sqlupdate查询内where后面的

objNew:

update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sqlupdate查询内set后面的

upsert:

这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi:

mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

例:

db.test0.update({"count":

{$gt:

1}},{$set:

{"test2":

"OK"}});只更新了第一条记录

db.test0.update({"count":

{$gt:

3}},{$set:

{"test2":

"OK"}},false,true);全更新了

db.test0.update({"count":

{$gt:

4}},{$set:

{"test5":

"OK"}},true,false);只加进去了第一条

db.test0.update({"count":

{$gt:

5}},{$set:

{"test5":

"OK"}},true,true);全加进去了

db.test0.update({"count":

{$gt:

15}},{$inc:

{"count":

1}},false,true);全更新了

db.test0.update({"count":

{$gt:

10}},{$inc:

{"count":

1}},false,false);只更新了第一条

g)find指令

i.查询数据,可配合skip与limit方法使用达到分页效果。

ii.db.[表名].find({}).skip([num1]).limit([num2]),num1从第几条数据开始,num2为所查询的数据条数,如果数据不足,则以所剩数据为准

iii.db.[表名].find({[_id:

{<:

num}]})中括号中为查询条件示例,大于小于等关系运算符则使用转译字符代替。

>usezm

switchedtodbzm

>db.zm.find().skip(10).limit(5);

{"_id":

ObjectId("4e9e3d6b5240000000005a1c"),"char":

"k","code":

107}

{"_id":

ObjectId("4e9e3d6b5240000000005a1d"),"char":

"l","code":

108}

{"_id":

ObjectId("4e9e3d6b5240000000005a1e"),"char":

"m","code":

109}

{"_id":

ObjectId("4e9e3d6b5240000000005a1f"),"char":

"n","code":

110}

{"_id":

ObjectId("4e9e3d6b5240000000005a20"),"char":

"o","code":

111}

>

h)findOne指令

i.查询指定查询中的第一条指令

ii.db.[表名].findOne()

>db.zm.findOne()

{"_id":

ObjectId("4e9e3d6b5240000000005a12"),"char":

"a","code":

97}

注:

findOne中的O必须大写。

i)function

i.自定义函数,定义完后可直接调用

ii.functiontestFunction(op1,op2,op3……){}

iii.“testFunction”:

function(op1,op2,op3……){}

iv.定义好的函数可以直接调用,可以使用return返回数据

>functiontestFunction(){

...db.zm.remove({"code":

{$in:

[100,101,102,103]}})

...returndb.zm.find({})

...}

>testFunction()

{"_id":

ObjectId("4e9e3d6b5240000000005a12"),"char":

"a","code":

97}

{"_id":

ObjectId("4e9e3d6b5240000000005a13"),"char":

"b","code":

98}

{"_id":

ObjectId("4e9e3d6b5240000000005a14"),"char":

"c","code":

99}

{"_id":

ObjectId("4e9e3d6b5240000000005a19"),"char":

"h","code":

104}

{"_id":

ObjectId("4e9e3d6b5240000000005a1a"),"char":

"i","code":

105}

{"_id":

ObjectId("4e9e3d6b5240000000005a1b"),"char":

"j","code":

106}

{"_id":

ObjectId("4e9e3d6b5240000000005a1c"),"char":

"k","code":

107}

{"_id":

ObjectId("4e9e3d6b5240000000005a1d"),"char":

"l","code":

108}

{"_id":

ObjectId("4e9e3d6b5240000000005a1e"),"char":

"m","code":

109}

{"_id":

ObjectId("4e9e3d6b5240000000005a1f"),"char":

"n","code":

110}

{"_id":

ObjectId("4e9e3d6b5240000000005a20"),"char":

"o","code":

111}

{"_id":

ObjectId("4e9e3d6b5240000000005a21"),"char":

"p","code":

112}

{"_id":

ObjectId("4e9e3d6b5240000000005a22"),"char":

"q","code":

113}

{"_id":

ObjectId("4e9e3d6b5240000000005a23"),"char":

"r","code":

114}

{"_id":

ObjectId("4e9e3d6b5240000000005a24"),"char":

"s","code":

115}

{"_id":

ObjectId("4e9e3d6b5240000000005a25"),"char":

"t","code":

116}

{"_id":

ObjectId("4e9e3d6b5240000000005a26"),"char":

"u","code":

117}

{"_id":

ObjectId("4e9e3d6b5240000000005a27"),"char":

"v","code":

118}

{"_id":

ObjectId("4e9e3d6b5240000000005a28"),"char":

"w","code":

119}

{"_id":

ObjectId("4e9e3d6b5240000000005a29"),"char":

"x","code":

120}

hasmore

j)var

i.变量命名类型

ii.同JS中的var一样。

1.var[name]命名也与js变量命名规则一致。

k)print指令

i.用于打印

ii.print([Strings]);

iii.如果打印对象为mongo数据,则会无法识别。

l)printJson指令

i.用于对数据进行打印

ii.printJson([json]);

m)shutdown

i.停止mongodb

ii.>use数据库名

switchedtodoadmin

>db.shutdownServer();

servershouldbedown…

MongoDB支持各种条件运算符,包括:

∙$lt(小于)

∙$lte(小于等于)

∙$gt(大于)

∙$gte(大于等于)

∙$all(匹配数组中的所有值)

∙$exists(检查字段是否存在)

∙$mod(模数)

∙$ne(不等)

∙$in(匹配数组一个或多个值)

∙$nin(匹配数组中的零值)

∙$or(匹配一个或另一个查询)

∙$nor(不匹配查询)

∙$size(匹配具有预定数量元素的任何数组)

∙$type(匹配具有指定BSON数据类型的值)

∙$not(不等于)

db.表名.find({字段名:

{$gt:

100}})

mongodb的更新操作符

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1