<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>MongoDB Tutorial｜林鼎淵 Dean Lin</title>
    <link>https://deanlin.net/tags/mongodb-tutorial/</link>
    <image><url>https://deanlin.net/images/author_hu_aa256fc934e9a932.jpg</url><title>MongoDB Tutorial｜林鼎淵 Dean Lin</title><link>https://deanlin.net/tags/mongodb-tutorial/</link><width>144</width><height>144</height></image>
    <description>林鼎淵（Dean Lin）的部落格：生成式 AI 企業內訓講師、外商資安公司軟體專家、7 本書作者。400 多篇文章用白話分享生成式 AI 實戰、Claude Code 與 Vibe Coding 教學、團隊合作與職場成長。</description>
    <generator>Hugo</generator>
    <language>zh-tw</language>
    <copyright>© 2020–2026 林鼎淵 Dean Lin</copyright>
    <lastBuildDate>Thu, 26 Aug 2021 21:53:02 +0800</lastBuildDate>
    <atom:link href="https://deanlin.net/tags/mongodb-tutorial/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>用 Node.js 享受 Cloud MongoDB 吧</title>
      <link>https://deanlin.net/blog/202108/nodejs-mongodb-atlas/</link>
      <pubDate>Thu, 26 Aug 2021 21:53:02 +0800</pubDate>
      <guid>https://deanlin.net/blog/202108/nodejs-mongodb-atlas/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>技術教學</category>
      <description>你知道有免費的 Cloud MongoDB 資源可以使用嗎？雖然跟著官方教學走就能順利使用，但有些小細節我還是補充一下避免新手擔心，希望大家可以無障礙的使用這些資源～</description>
      <media:content url="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-og_hu_6a09ad8cf4161e98.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>你知道有免費的 Cloud MongoDB 資源可以使用嗎？雖然跟著官方教學走就能順利使用，但有些小細節我還是補充一下避免新手擔心，希望大家可以無障礙的使用這些資源～</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-01.webp" width="1400" height="785" alt="用 Node.js 享受 Cloud MongoDB 吧（圖 1）" fetchpriority="high" decoding="async"></p>
<pre tabindex="0"><code>大綱
一、建立雲端 MongoDB
  SETP 1：註冊帳號
  SETP 2：建立組織(Organization)
  SETP 3：建立專案(Project)
  SETP 4：建立叢集（Build your first cluster）
  SETP 5：建立 DB 使用者（Create your first database user）
  SETP 6：加入可以存取的 IP（Add IP Address to your Access List）
  SETP 7：載入範例資料（Load Sample Data）
  SETP 8：連線到這個叢集（Connect to your cluster）
二、用 Node.js 取得雲端 MongoDB 的資料
</code></pre><h2 id="一建立雲端-mongodb">一、建立雲端 MongoDB<a class="h-anchor" href="#%e4%b8%80%e5%bb%ba%e7%ab%8b%e9%9b%b2%e7%ab%af-mongodb" aria-label="這個段落的連結"></a></h2>
<p><strong>SETP 1</strong>：註冊帳號</p>
<p>建議直接用 Google 帳號登入就好了，這個是真的有「免費」資源讓大家使用的。</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-02.webp" width="1304" height="616" alt="一、建立雲端 MongoDB（圖 2）" loading="lazy" decoding="async"></p>
<p>基本上你只打勾才能下一步啦</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-03.webp" width="1304" height="315" alt="一、建立雲端 MongoDB（圖 3）" loading="lazy" decoding="async"></p>
<p><strong>SETP 2</strong>：建立組織(Organization)</p>
<blockquote>
<p>左下角的「Get Started」是官方教學，但如果在這個階段「Build your first cluster」會失敗 QQ，所以建議按照文章操作順序比較穩定</p>
</blockquote>
<p>點擊「Create an Organization」</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-04.webp" width="1315" height="879" alt="一、建立雲端 MongoDB（圖 4）" loading="lazy" decoding="async"></p>
<p>輸入組織名稱後點擊「Next」</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-05.webp" width="1315" height="724" alt="一、建立雲端 MongoDB（圖 5）" loading="lazy" decoding="async"></p>
<p>點擊「Create Organization」建立組織，你之後還是可以邀請其他人進來這個組織，不急於現在。</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-06.webp" width="1141" height="724" alt="一、建立雲端 MongoDB（圖 6）" loading="lazy" decoding="async"></p>
<p><strong>SETP 3</strong>：建立專案(Project)</p>
<p>點擊「New Project」</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-07.webp" width="1322" height="518" alt="一、建立雲端 MongoDB（圖 7）" loading="lazy" decoding="async"></p>
<p>輸入專案名稱</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-08.webp" width="1322" height="518" alt="一、建立雲端 MongoDB（圖 8）" loading="lazy" decoding="async"></p>
<p>點擊「Create Project」建立專案</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-09.webp" width="1169" height="689" alt="一、建立雲端 MongoDB（圖 9）" loading="lazy" decoding="async"></p>
<hr>
<p><strong>SETP 4</strong>：建立叢集（Build your first cluster）</p>
<p>選最右邊「FREE」的</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-10.webp" width="1046" height="941" alt="一、建立雲端 MongoDB（圖 10）" loading="lazy" decoding="async"></p>
<p>這邊我是選擇「Google Cloud」在「Taiwan」的機器，選好後按「Create Cluster」</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-11.webp" width="1046" height="959" alt="一、建立雲端 MongoDB（圖 11）" loading="lazy" decoding="async"></p>
<p><strong>SETP 5</strong>：建立 DB 使用者（Create your first database user）</p>
<p>點擊「Add New Database User」建立使用者</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-12.webp" width="1400" height="809" alt="一、建立雲端 MongoDB（圖 12）" loading="lazy" decoding="async"></p>
<p>他有提供三種驗證方式，如果是初學者我建議選擇「Password」就好，而密碼我建議用「Autogenerate Secure Password」產生的比較安全；其他權限都先使用默認就好，按下「Add User」便建立成功～</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-13.webp" width="1400" height="809" alt="一、建立雲端 MongoDB（圖 13）" loading="lazy" decoding="async"></p>
<p><strong>SETP 6</strong>：加入可以存取的 IP（Add IP Address to your Access List）</p>
<p>點擊「Add IP Address」加入 IP</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-14.webp" width="1400" height="809" alt="一、建立雲端 MongoDB（圖 14）" loading="lazy" decoding="async"></p>
<p>如果你電腦的 IP 是固定的就選「ADD CURRENT IP ADDRESS」，如果是使用手機分享或是其他浮動 IP，你可以選「ALLOW ACCESS FROM ANYWHERE」，但如果選了這個就真的要小心保護你的帳號密碼不要外流</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-15.webp" width="905" height="547" alt="一、建立雲端 MongoDB（圖 15）" loading="lazy" decoding="async"></p>
<p><strong>SETP 7</strong>：載入範例資料（Load Sample Data）</p>
<p>為了方便讓大家測試與學習，官方提供範例資料讓大家使用</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-16.webp" width="1400" height="554" alt="一、建立雲端 MongoDB（圖 16）" loading="lazy" decoding="async"></p>
<p>點擊「Load Sample Dataset」即可，大概等個 5~8 分鐘左右載入</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-17.webp" width="773" height="409" alt="一、建立雲端 MongoDB（圖 17）" loading="lazy" decoding="async"></p>
<p><strong>SETP 8</strong>：連線到這個叢集（Connect to your cluster）</p>
<p>點擊「Connect」來看連線的方式</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-18.webp" width="1214" height="405" alt="一、建立雲端 MongoDB（圖 18）" loading="lazy" decoding="async"></p>
<p>這裡我推薦使用「MongoDB Compass」，有 GUI 介面就是友善～</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-19.webp" width="892" height="693" alt="一、建立雲端 MongoDB（圖 19）" loading="lazy" decoding="async"></p>
<p>下載及安裝的方式請依照自己的作業系統處理，這裏我就不贅述了；但下面連線字串真的要複製起來等等連線要用</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-20.webp" width="892" height="812" alt="一、建立雲端 MongoDB（圖 20）" loading="lazy" decoding="async"></p>
<p>打開安裝好的「MongoDB Compass」後，在框框內貼上剛剛複製的連線字串，記得要把 <code>&lt;password&gt;</code> 換成在 「STEP 5 建立 DB 使用者」的密碼</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-21.webp" width="1274" height="313" alt="一、建立雲端 MongoDB（圖 21）" loading="lazy" decoding="async"></p>
<p>連進去後就能看到範例資料嚕～</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-22.webp" width="1276" height="782" alt="一、建立雲端 MongoDB（圖 22）" loading="lazy" decoding="async"></p>
<hr>
<h2 id="二用-nodejs-取得雲端-mongodb-的資料">二、用 Node.js 取得雲端 MongoDB 的資料<a class="h-anchor" href="#%e4%ba%8c%e7%94%a8-nodejs-%e5%8f%96%e5%be%97%e9%9b%b2%e7%ab%af-mongodb-%e7%9a%84%e8%b3%87%e6%96%99" aria-label="這個段落的連結"></a></h2>
<p><strong>STEP 1</strong>：建立一個資料夾，輸入 <code>npm init</code></p>
<p><strong>SETP 2</strong>：安裝 MongoDB 套件 <code>npm install mongodb</code></p>
<p><strong>STEP 3</strong>：建立 <code>index.js</code> 並貼上官方範例程式</p>
<p><strong>SETP 4</strong>：將 <code>uri</code> 的內容要改成自己的（你怎麼連線到 MongoDB Compass 這裡就是怎麼設定）</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ff7b72">const</span> { MongoClient } <span style="color:#ff7b72;font-weight:bold">=</span> require(<span style="color:#a5d6ff">&#34;mongodb&#34;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#8b949e;font-style:italic">// Replace the uri string with your MongoDB deployment&#39;s connection string.
</span></span></span><span style="display:flex;"><span><span style="color:#ff7b72">const</span> uri <span style="color:#ff7b72;font-weight:bold">=</span>
</span></span><span style="display:flex;"><span>  <span style="color:#a5d6ff">&#34;mongodb+srv://&lt;user&gt;:&lt;password&gt;@&lt;cluster-url&gt;?retryWrites=true&amp;writeConcern=majority&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">const</span> client <span style="color:#ff7b72;font-weight:bold">=</span> <span style="color:#ff7b72">new</span> MongoClient(uri);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">async</span> <span style="color:#ff7b72">function</span> run() {
</span></span><span style="display:flex;"><span>  <span style="color:#ff7b72">try</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#ff7b72">await</span> client.connect();
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff7b72">const</span> database <span style="color:#ff7b72;font-weight:bold">=</span> client.db(<span style="color:#a5d6ff">&#39;sample_mflix&#39;</span>);
</span></span><span style="display:flex;"><span>    <span style="color:#ff7b72">const</span> movies <span style="color:#ff7b72;font-weight:bold">=</span> database.collection(<span style="color:#a5d6ff">&#39;movies&#39;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#8b949e;font-style:italic">// Query for a movie that has the title &#39;Back to the Future&#39;
</span></span></span><span style="display:flex;"><span>    <span style="color:#ff7b72">const</span> query <span style="color:#ff7b72;font-weight:bold">=</span> { title<span style="color:#ff7b72;font-weight:bold">:</span> <span style="color:#a5d6ff">&#39;Back to the Future&#39;</span> };
</span></span><span style="display:flex;"><span>    <span style="color:#ff7b72">const</span> movie <span style="color:#ff7b72;font-weight:bold">=</span> <span style="color:#ff7b72">await</span> movies.findOne(query);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    console.log(movie);
</span></span><span style="display:flex;"><span>  } <span style="color:#ff7b72">finally</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#8b949e;font-style:italic">// Ensures that the client will close when you finish/error
</span></span></span><span style="display:flex;"><span>    <span style="color:#ff7b72">await</span> client.close();
</span></span><span style="display:flex;"><span>  }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>run().<span style="color:#ff7b72">catch</span>(console.dir);
</span></span></code></pre></div><p class="code-source">原始碼：<a href="https://gist.github.com/dean9703111/f24587554ce195dc3249ff68f7bdd3ff" rel="noopener">Mongo_example.js</a>（GitHub Gist）</p>
<p><strong>STEP 5</strong>：在終端機輸入 <code>node index.js</code></p>
<p>如果順利印出下面的資訊就代表你成功踏入 MongoDB 學習的第一步嚕～</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-23.webp" width="1400" height="539" alt="二、用 Node.js 取得雲端 MongoDB 的資料（圖 23）" loading="lazy" decoding="async"></p>
<p><strong>STEP 6</strong>：如果你有驗證的心，可以回到 MongoDB Compass</p>
<p>選好 DB 以及 Collection 後，在 filter 輸入 <code>{ title: &lsquo;Back to Future&rsquo; }</code> ，確認回傳結果是否與 Node.js 查到的相同</p>
<p><img src="https://deanlin.net/blog/202108/nodejs-mongodb-atlas/images/nodejs-mongodb-atlas-24.webp" width="1275" height="776" alt="二、用 Node.js 取得雲端 MongoDB 的資料（圖 24）" loading="lazy" decoding="async"></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
