laravel 连接mongodb
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了laravel 连接mongodb,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6251字,纯文字阅读大概需要9分钟。
内容图文
If you don’t know about composer or want to know more detailed installation and configuration of Larvel then Laravel documentation explained it in detail: http://laravel.com/docs/5.1#installation
MongoDB installation:
If you haven’t already installed MongoDB then MongoDB have separate guides for installing it own different Operating Systems. So check that: http://docs.mongodb.org/manual/installation/
Current version of MongoDB at this time is 3.x. But it you have MongoDB version 2.x installed and running on your machine then still feel free to use this tutorial, as it will work for 2.x as well and it have stuff related to 2.x difference in user creation section.
MongoDB driver for PHP:
PHP have official MongoDB driver that is called Mongo. It contains MongoClient class that is used by several packages which connect PHP with MongoDB.
You can install MongoDB driver on Windows OS using steps mentioned here: http://haafiz.me/development/installing-mongodb-driver-mongoclient-for-php-on-windows
To install MongoDB driver on ubuntu or other Linux distributions, follow steps mentioned here: http://haafiz.me/development/installing-mongodb-driver-mongoclient-for-php-on-ubuntu
To check if MongoDB driver is successfully installed, try instantiating MongoClient class.
Laravel Package for MongoDB:
Laravel have several MongoDB related packages and some of them not work for Laravel 5.x (current versions at time of this writing). Based on several factors like number of contributers, number of commits, releases and documentation on github, simplicity and ease of use, I suggest using jenssegers/laravel-mongodb which is also knowns as Moloquent.
Installation:
To install for Laravel 5.1, install latest stable version using composer.
composer require jenssegers/mongodb
In config/app.php :
Add below line in providers array:
Jenssegers\Mongodb\MongodbServiceProvider::class,
And add in same file, add below line in aliases array:
‘Moloquent‘ => ‘Jenssegers\Mongodb\Model‘,
Moloquent Configurations:
In app/config/database.php, add MongoDB connection detail:
‘mongodb‘ => array(
‘driver‘ => ‘mongodb‘,
‘host‘ => env(‘DB_HOST‘, ‘localhost‘),
‘port‘ => env(‘DB_PORT‘, 27017),
‘database‘ => env(‘DB_DATABASE‘, ‘l5‘),
‘username‘ => env(‘DB_USERNAME‘, ‘l5‘),
‘password‘ => env(‘DB_PASSWORD‘, ‘123456‘),
‘options‘ => array(
‘db‘ => ‘admin‘ // sets the authentication database required by mongo 3
)
),
and make this mongodb connection, default connection.
‘default‘ => env(‘DB_CONNECTION‘, ‘mongodb‘),
If you have installed MongoDB just now then you will not have Database, username and password to provide in connection info. For that purpose you need to first create database, username and password.
Setting up MongoDB Database and User:
To create a MongoDB database, you need to start, execute “mongo” from command line. To do so you need to add MongoDB bin directory to your system path. And then run:
mongod
This will run mongo server to listen calls.
In case you see error like: “ data/db not found ” , then that means that this path doesn’t exist on your system or don’t have appropriate permissions. So either create and assign appropriate permissions at that location or with appropriate permissions create DB data folder at some other custom location and give DB path like:
mongod --dbpath custom/directory/path
Once it is running, mongo server will be listening for client calls. So you need to run mongo shell client by simply opening another shell instance and run :
mongo
This will open mongoDB shell.
Creating Database in MongoDB:
Using mongo client shell, you need to create your database
> use dbname
> db.insert({"key":"value"})
By executing above statement, use statement switches DB to “dbname”, and assigns value “dbname” to variable “db” so you can use your desired DB name. If “dbname” is name of existing database then it will switch to that database or else it will create that Database if atleast one record is added to that database.
Setting up First User and access:
If you are using Mongo 3.0 or above, first of all you need to switch to “admin” database and creating a user with administrative rights for all databases.
> use admin
> db.createUser(
{
user: "siteUserAdmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
You can replace “siteUserAdmin” and “password” from above code with your desired admin username and password. Role “userAdminAnyDatabase” is a special role for administrating all databases and this role is at “admin” database.
Once you have this Admin user on admin DB, you need to create user for your required DB, in our case “dbname”.
> use records
> db.createUser(
{
user: "recordsUserAdmin",
pwd: "password",
roles: [ { role: "userAdmin", db: "records" } ]
}
)
Here you can replace “recordsUserAdmin”,”password” and “dbname” with desired username, password and your intended database name. And this will set your admin user for that database.
If you are using MongoDB version 2.x then user creation is different. In version 2.x db.createUser() function is not present. You need to use db.addUser() like:
> use products
> db.addUser( { user: "user1",
pwd: "password",
roles: [ "readWrite", "dbAdmin" ]
} )
So now you have DBname, username and password to put in you Laravel app/config/database.php
Extending Models from Moloquent:
Only thing that is left is to extend your models from “Moloquent” instead of “Eloquent”. So a typical model will look like this:
<?php
namespace App\Models;
use Moloquent;
/**
* Category Model
*
* @author Hafiz Waheeduddin
*/
class Category extends Moloquent
{
public function tasks()
{
return $this->hasMany(‘App\Models\Task‘, ‘category_id‘);
}
}
So after that you can simply run most of queries of query builder through category model. And can utilized ORM in similar way as Moloquent supports many types of relationships, so you can utilize them too.
Moloquent Detail and Documentation:
Moloquent have very good examples at github to understand it and use it. So for Moloquent usage, reference and understanding, please check moloquent github page .
laravel 连接mongodb
标签:
本文系统来源:http://www.cnblogs.com/mengxiaotian/p/5294786.html
内容总结
以上是互联网集市为您收集整理的laravel 连接mongodb全部内容,希望文章能够帮你解决laravel 连接mongodb所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。