不知道为什么别人很简单就能装上,我却遇到了好多问题。只好把“辛辛苦苦”弄好的mongodb的安装过程详细写一遍留着以后用。
一、下载MongoDB
先去http://www.mongodb.org/downloads下载对应MongoDB版本,比如我的是Win32位系统
二、设置MongoDB目录
将其解压至F:\,重新命名为mongodb,路径为F:\mongodb
注:mongodb文件夹不放在直接路径下也可以,但注意路径中不要有中文或空格。
三、设置数据文件路径
在f:盘创建一个data文件夹,在data文件夹中创建db文件夹,路径F:\data\db
四、设置日志文件路径
在F:\mongodb路径下创建logs文件夹,在logs文件夹下创建F:\mongodb\logs\mongodb.log文件
五、启动MongoDB服务
运行->输入:cmd->定位到f:\mongodb\bin 目录下->输入:
mongod.exe --dbpath f:\data\db --logpath f:\mongodb\logs\mongodb.log --install
MongoDB服务端的默认连接端口:27017,MongoDB服务将被创建并启动
注:如要删除服务,执行命令: sc delete MongoDB
六、客户端连接验证
新开打一个CMD,定位到mongodb目录下,输入mongo
安装成功
七、MongoDB与PHP驱动安装
1、下载驱动程序 http://downloads.mongodb.org/mongo-latest-php5.3vc6ts.zip
2、解压php_mongo.dll到php目录下的ext目录,然后修改php.ini,增加extension=php_mongo.dll,重启apache
看下phpinfo()是否有mongo
八、MongoDB基本操作
基本CRUD操作
在进行操作之前,还需要补充一点基本知识。MongoDB中会使用一个变量db存储当前使用的数据库。我们连接到MongoDB数据库,默认会连接到test数据库。如果需要换到别的数据库,可以使用use dbname命令:
> use foobar switched to db foobar
我们假设需要在Persons集合中保存人员信息(姓名、年龄、信息保存日期)。可以先创建一个JS对象,然后将它插入数据库对应集合:
> p = {"name":"wawlian","age":23,"CDate":new Date()}; { "name" : "wawlian", "age" : 23, "CDate" : ISODate("2011-12-01T17:13:45.671Z") } > db.Persons.insert(p);
上面{}中的部分是执行上一条指令的输出。这个人员信息已经保存进去了。此外,我们之前并未创建集合Persons,这是我们在保存人员信息时根据命令,mongodb自己为我们创建的。
Retrieve:检索
可以通过调用集合的find()方法查询所有记录:
> db.Persons.find(); { "_id" : ObjectId("4ed7b5ce4f33e90801872724"), "name" : "wawlian", "age" : 23, "CDate" : ISODate("2011-12-01T17:13:45.671Z") }我们之前插入的记录已经查看到了。我们发现,多出了一个键值对:_id/ObjectId。这是MongoDB为每个文档添加的唯一标识。
Update:更新
更新使用的是集合的update()方法。当然,既然要更新,总得让数据库知道该更新谁吧。所以这个方法有两个参数:更新条件、新的文档。直接看代码:
> db.Persons.update({"name":"wawlian"},{"name":"xiaobai","age":"18"}); > db.Persons.find(); { "_id" : ObjectId("4ed7b5ce4f33e90801872724"), "name" : "xiaobai", "age" : "18" }
Delete:删除
删除文档只需要使用集合的remove()方法。remove()方法需要传递一个参数:删除条件。这一点与上面的update()方法类似。
> db.Persons.remove({"name":"xiaobai"});
> db.Persons.find();
删除之后再查看记录已经没有了。