一.MongoDB数据库的安装
1.到官网www.mongo.org上下载相应的版本
2.在D盘根目录建一个MongoDB的文件夹放解压出来的文件,这些文件目录结构如下
bin
GNU-AGPL-3.0
README
THIRD-PARTY-NOTICES
3.在D盘根目录在建一个MongoDBData文件夹用于存放db文件
4.cmd-->切换到-->D:\MongoDB\bin> 目录
5.执行脚本mongod.exe --dbpath D:\MongoDBData
6.配置系统环境变量,把;D:\MongoDB\bin;配置到系统PATH目录中,我个人同时也在当前用户的PATH中配置这样的变量
7.cmd-->执行mongod -help出现一推参数,就说明MongoDB配置成功了,这个时候就可以在cmd控制台使用MongoDB的shell命令
二.启动数据库服务
1.在D盘根目录建一个MongoDBStart的文件夹,在该文件夹下新建一个MongoDB.bat的文件
2.里面这样写 mongod --dbpath D:\MongoDBData 后面这个路径(D:\MongoDBData),就是db文件存放的路径
3.双击该.bat文件就可以启动MongoDB了,它这时候监听的端口号为:28017,注意:默认端口是27017,28017一般是用于web访问的端口
三.各项参数的说明
1.可以cmd-->mongod -help查看
四.MongoDB的简单对比说明
五.MongoDB在mac上的安装
1.到mongodb的官网上下载mac版本的安装文件
2.解压到某一目录,我习惯放在个人用户的目录,注意:需要把个人用户(我的是skythinking)这个目录赋值权限777
3.解压目录得到
bin
GNU-AGPL-3.0
README
THIRD-PARTY-NOTICES
4.在以上这些目录的同级目录建立data/db,最终目录结构是这样的
bin
GNU-AGPL-3.0
REAEME
THIRD-PARTY-NOTICES
data
注意:data目录下面还有个db的目录
5.修改这些目录的上层目录为MongoDB2.6.5 (这个名字由自己来取)
6.配置mongodb的环境变量
1.打开终端,输入显示的命令
显示:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false
2.我们在个人用户的目录,我的的是skythinking下找到.bash_profile
3.用文本编辑器打开该文件,我用的文本编辑器是sublime3
4.增加一行代码
export PATH=/Users/skythinking/MongoDB2.6.5/bin:$PATH
5.增加这一行代码我们就可以在终端使用shell命令了,比如:mongod -help
6.启动mongodb
终端输入:
mongod --dbpath /Users/skythinking/MongoDB2.6.5/data/db 回车
启动完成
六:开源免费的mongodb数据库管理工具Robomongo的安装
和其他数据库一样,我们有更好的图形界面了帮助我们管理mongodb数据库,在这里介绍一款Robomongo软件,
官网下载地址 如果你不能使用这个链接,点击下载一个0.8.4版本
启动Robomongo,File->Connect,在MongoDB Connections窗口点击create新建一个数据库系统连接。
在Connection界面:address写上localhost(如果你定向到本地的话,或者127.0.0.1),端口就是27017。
在Authentication界面:
这里要注意的一点,mongodb默认不开启用户验证,在不开启用户验证的情况下,不需要登陆用户和用户验证即可访问数据库,如果你不需要使用用户验证,只想先测试一下数据库,就不要勾选Perform authentication,然后连接即可。
但如果你想进行用户验证,你要保证在数据库系统的管理员数据库admin中有一个可用的账号(否则还是不会开启用户验证,没有账号你怎么获得所有权限呢),并且在启动mongodb服务时,在启动参数里加上"--auth":
- >mongod --dbpath d:/data/db --auth
PS:你可以先不使用用户验证,在admin新建账号密码,重新用开启用户验证的方式启动mongod。
在Robomongo中,你可以右键一个数据库开启它的shell,然后在shell中输入命令Ctrl+Enter运行,这部分就和shell中的命令一样,你可以做所有你想要做的操作,其他方便的操作等待你去挖掘。
Laravel中使用mongodb:
如果你安装mongodb是为了在Laravel中使用,请先参考laravel手册
在app/confi/database.php中,'connections'数组里我们添加一项mongodb的条目,表明我们的数据库系统架构里支持mongodb,并且定义它的连接方式:
- 'connections' => array(
- 'mongodb' => array(
- 'driver' => 'mongodb',
- 'host' => 'localhost',
- 'port' => 27017,
- 'username' => 'picroot',
- 'password' => 'picroot',
- 'database' => 'picmongo',
- ),
- ),
picmongo是笔者在mongo数据库系统中建立的一个数据库,它有用户picroot/picroot(注意是该数据库的用户而不是admin的用户)
PS:如果需要将mongo设置为首选数据库,可以更改'default'选项。
除了在config配置数据库,还要配置我们的php组件,扩展我们的php以使用mongo。
下载对应版本的php_mongo.dll,参考安装手册 ,确认你的php版本,下载对应的dll组件,更名为php_mongo.dll,放入php的ext目中(如果你没有更改php默认的extension目录,那就是ext目录),并在php.ini中加入一行:
- extension=php_mongo.dll
- <?php
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Database\Migrations\Migration;
- class CreateLikecountTable extends Migration {
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- //
- Schema::connection('mongodb')->create('count', function(Blueprint $table){
- $table->increments('id');
- $table->unsignedInteger('picture_id');
- $table->unsignedInteger('count');
- $table->timestamps();
- });
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- //
- Schema::drop('count');
- }
- }
建议:
如果你不是很了解laravel中多数据库系统操作的话:
1.不建议,但可以使用:每次使用前选择连接(当连接非默认数据库时):
其实这种写法并不是很好管理,还容易出错,连接后不及时disconnection的话,还可能占据冗余但不使用的数据库连接,对系统资源是一个浪费。
2.建议:对所有使用数据库的Eloquent设定默认的数据库连接:
- class YourEloquent extends Eloquent
- {
- protected $connection = 'mongodb';
- ...
- ...
- }
Eloquent是非常方便的,在这里定义默认连接后,我们使用模型的Eloquent方法时自动会选择连接我们设定的数据库。对于一个庞大的业务,设定一个好的模型集合是非常重要的,它直接避免了程序员在代码中还要纠结该连哪个数据库的问题,而直接在模型中解决了。
对于那些一个模型使用两种链接的情况,笔者建议你将模型拆分(往往不同业务需求的数据库连接同样反映了在逻辑上这个模型是容易拆分的),使得每个模型应用一个数据库连接,不仅方便数据库迁移和回滚,也方便理解业务逻辑。