<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>Ninh nguyen, Author at Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/author/ninhnguyen/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/author/ninhnguyen/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Mon, 15 Jan 2024 06:15:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>Ninh nguyen, Author at Tomoshare</title>
	<link>https://blog.tomosia.com.vn/author/ninhnguyen/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Hướng dẫn kết nối Laravel + MongoDB</title>
		<link>https://blog.tomosia.com.vn/huong-dan-ket-noi-laravel-mongodb/</link>
					<comments>https://blog.tomosia.com.vn/huong-dan-ket-noi-laravel-mongodb/#comments</comments>
		
		<dc:creator><![CDATA[Ninh nguyen]]></dc:creator>
		<pubDate>Fri, 12 Jan 2024 06:12:18 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=3065</guid>

					<description><![CDATA[<p>1. Khái niệm MongoDB MongoDB là một database hướng tài liệu (document), một dạng NoSQL database. Vì thế, MongoDB&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/huong-dan-ket-noi-laravel-mongodb/">Hướng dẫn kết nối Laravel + MongoDB</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 id="1-khai-niem-mongodb" class="wp-block-heading"><strong>1. Khái niệm MongoDB</strong></h2>



<p><strong>MongoDB</strong> là một database hướng tài liệu (document), một dạng NoSQL database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON. Sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.</p>



<h2 id="2-khi-nao-su-dung-mongodb" class="wp-block-heading"><strong>2. Khi nào sử dụng MongoDB</strong></h2>



<p><strong>Quản lý và truyền tải content</strong>&nbsp;– Quản lý đa dạng nhiều product của content chỉ trong một kho lưu trữ data cho phép thay đổi và phản hồi nhanh chóng mà không chịu thêm phức tạp thêm từ hệ thống content.</p>



<p><strong>Cấu trúc Mobile và Social</strong>&nbsp;– MongoDB cung cấp một platform có sẵn, phản xạ nhanh, và dễ mở rộng cho phép rất nhiều khả năng đột phá, phân tích real-time, và hỗ trợ toàn cầu.</p>



<p><strong>Quản lý data khách hàng</strong>&nbsp;– Tận dụng khả năng query nhanh chóng cho phân tích real-time trên cơ sở dữ liệu người dùng cực lớn vớ các mô hình data phức tạp bằng các schema linh hoạt và tự động sharding cho mở rộng chiều ngang.</p>



<h2 id="3-uu-diem-va-nhuoc-diem" class="wp-block-heading"><strong>3. Ưu điểm và nhược điểm</strong></h2>



<h2 id="uu-diem" class="wp-block-heading"><strong>Ưu điểm</strong></h2>



<p>Dữ liệu lưu trữ phi cấu trúc, không có tính ràng buộc, toàn vẹn nên tính sẵn sàng cao, hiệu suất lớn và dễ dàng mở rộng lưu trữ.</p>



<p>Dữ liệu được caching (ghi đệm) lên RAM, hạn chế truy cập vào ổ cứng nên tốc độ đọc và ghi cao.</p>



<h2 id="nhuoc-diem" class="wp-block-heading"><strong>Nhược điểm</strong></h2>



<p>Không ứng dụng được cho các mô hình giao dịch nào có yêu cầu độ chính xác cao do không có ràng buộc.</p>



<p>Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng.</p>



<p>Dữ liệu lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộ nhớ RAM lớn.</p>



<p>Mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức vì vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao.</p>



<h2 id="4-ket-noi-laravel-mongodb" class="wp-block-heading"><strong>4. Kết nối Laravel + MongoDB</strong></h2>



<h2 id="tao-du-an-laravel" class="wp-block-heading">Tạo dự án laravel</h2>



<p>composer create-project laravel/laravel Demo</p>



<h2 id="them-package-mongodb-vao-du-an" class="wp-block-heading">Thêm package mongoDB vào dự án</h2>



<p>composer require mongodb/laravel-mongodb:4.0.0</p>



<h2 id="them-cau-hinh-mongodb" class="wp-block-heading">Thêm cấu hình mongoDB</h2>



<p>Thêm vào file config/database.php</p>



<pre class="wp-block-code"><code>'connections' =&gt; &#91;
        'mongodb' =&gt; &#91;
            'driver' =&gt; 'mongodb',
            'dsn' =&gt; env('MONGODB_URI'),
            'database' =&gt; 'YOUR_DATABASE_NAME',
        ],</code></pre>



<p>Để lấy các thông tin cấu hình mongoDB truy cập <a href="https://cloud.mongodb.com/v2/659bc617e6426b75883e79c7#/overview">connection mongoDB</a> </p>



<p>Tạo Database</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="348" src="http://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53-1024x348.png" alt="" class="wp-image-3071" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53-1024x348.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53-300x102.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53-768x261.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53-380x129.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53-800x272.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-20-53.png 1044w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Chọn connect-&gt;Drivers</p>



<figure class="wp-block-image size-full"><img decoding="async" width="828" height="449" src="http://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-29-34.png" alt="" class="wp-image-3072" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-29-34.png 828w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-29-34-300x163.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-29-34-768x416.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-29-34-380x206.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2024/01/Screenshot-from-2024-01-11-22-29-34-800x434.png 800w" sizes="(max-width: 828px) 100vw, 828px" /></figure>



<p>Khi đó bạn sẽ lấy được chuỗi kết nối có dạng như thế này</p>



<pre class="wp-block-code"><code>mongodb+srv://&lt;username&gt;:&lt;password&gt;@test.hlpfzgm.mongodb.net/?retryWrites=true&amp;w=majority</code></pre>



<p>Cập nhật vào file .env</p>



<p>MONGODB_URI=mongodb+srv://&lt;username&gt;:&lt;password&gt;@test.hlpfzgm.mongodb.net/?retryWrites=true&amp;w=majority</p>



<p>Lưu ý: &lt;username&gt; và &lt;password&gt; là username và password đã được nhập ở bước tạo database</p>



<p>Cập nhật vào file config/database.php</p>



<pre class="wp-block-code"><code>'default' =&gt; env('DB_CONNECTION', 'mongodb'),</code></pre>



<h2 id="kiem-tra-ket-noi" class="wp-block-heading">Kiểm tra kết nối</h2>



<pre class="wp-block-code"><code>Route::get('/ping', function (Request  $request) {    
&nbsp;&nbsp;&nbsp;&nbsp;$connection = DB::connection('mongodb');
&nbsp;&nbsp;&nbsp;&nbsp;$msg = 'Thành công!';
&nbsp;&nbsp;&nbsp;&nbsp;try {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$connection-&gt;command(&#91;'ping' =&gt; 1]);  
    } catch (\Exception  $e) {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$msg = 'Thất bại: ' . $e-&gt;getMessage();
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;return &#91;'msg' =&gt; $msg];
});</code></pre>



<h2 id="tao-migration-va-model" class="wp-block-heading">Tạo migration và model</h2>



<pre class="wp-block-code"><code>public function up(): void
    {
        Schema::create('customers', function (Blueprint $table) {
            $table-&gt;id();
            $table-&gt;string('name');
            $table-&gt;string('email');
            $table-&gt;string('age');
            $table-&gt;timestamps();
        });
    }</code></pre>



<pre class="wp-block-code"><code>Chạy lệnh:
php artisan migration
php artisan make:model Customer</code></pre>



<pre class="wp-block-code"><code>//use Illuminate\Database\Eloquent\Model;
 use MongoDB\Laravel\Eloquent\Model;

class  Customer  extends  Model
{
&nbsp;&nbsp;&nbsp;&nbsp;use  HasFactory;

    protected  $connection = 'mongodb';

&nbsp;&nbsp;&nbsp;&nbsp;protected  $collection = 'customers';

&nbsp;&nbsp;&nbsp;&nbsp;protected  $fillable = &#91;'name','email','age'];
}</code></pre>



<h2 id="crud" class="wp-block-heading">CRUD</h2>



<pre class="wp-block-code"><code>//Thêm mới
CustomerSQL::create(&#91;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name'=&gt; 'customer_1',
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'email'=&gt; 'customer1@gmail.com',
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'age' =&gt; '18',
]);</code></pre>



<pre class="wp-block-code"><code>//Lấy thông tin customers
Customer::where('name', 'customer_1')-&gt;get();</code></pre>



<p>Hết rồi, hy vọng bài viết có thể giúp ích được cho bạn<br>Cảm ơn và hẹn gặp lại =)) !!!</p>
<p>The post <a href="https://blog.tomosia.com.vn/huong-dan-ket-noi-laravel-mongodb/">Hướng dẫn kết nối Laravel + MongoDB</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/huong-dan-ket-noi-laravel-mongodb/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
