MongoDB學習(1)--安裝,基本curd操作

来源:https://www.cnblogs.com/yangp67/archive/2018/01/05/8196890.html
-Advertisement-
Play Games

知識點: 1-MongoDB 安裝,啟動和卸載 2-基本概念 3-基本的增刪改查操作(CURD) 來回顧總結一把學習的mongodb,如果有javascript基礎,學習"芒果DB"還是很好理解的,如果會使用mysql,那就更容易了。 mongodb是一個介於nosql資料庫和mysql資料庫之間的 ...


知識點:

  1-MongoDB 安裝,啟動和卸載

  2-基本概念

  3-基本的增刪改查操作(CURD)


   來回顧總結一把學習的mongodb,如果有javascript基礎,學習"芒果DB"還是很好理解的,如果會使用mysql,那就更容易了。

  mongodb是一個介於nosql資料庫和mysql資料庫之間的一個數據存儲系統。Mongo的特點是他支持的查詢語言非常強大,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

  特點:高性能、易部署、易使用,存儲數據非常方便

  測試環境: win10系統

一. MongoDB 安裝,啟動和卸載

  1)  這裡只做windows中的安裝,比較簡單容易。

  Step 1: 官網下載壓縮文件並解壓 。現在官網下載要註冊比較麻煩,如果想快捷點,可以到mongo網址去下載

         我下載的版本: mongodb-win32-x86_64-v3.4-latest.zip    x86_64則不用管是32位還是64位

     解壓以後: 裡面有一個bin目錄和3個文件。我們需要的就是這個bin目錄。

      

  Step 2:  準備工作,將bin目錄複製到想放置的位置。可以創建一個mongodb目錄,將bin目錄放入。

      

  Step 3:  準備工作 , 創建一個存放數據的目錄如data/  ,再創建一個日誌文件如log.txt.  (執行安裝命令時就明白為什麼要創建了)

          

      我是在wamp目錄下創建了mongodb目錄, 和php,mysql在同級目錄下。

      我的目錄結構大致: /mongodb/bin/      /mongodb/data/     /mongodb/log.txt

  Step 4: 開始安裝,在cmd中運行bin目錄中的mongod.exe

      mongod.exe  --install   --dbpath 數據目錄    --logpath 日誌文件

1 //安裝  下麵db和log.txt就是上面準備工作中創建的
2 mongod.exe  --install 
3              --dbpath D:/amp/Mongodb/data/db  
4              --logpath D:/amp/Mongodb/data/log.txt

  註: 可以直接將mongod.exe往cmd視窗拖入,這樣就不用輸入路徑了

  Step 5: 啟動mongo.   在“運行”中輸入 “services.msc” 打開服務視窗,找到mongo項,並啟動。(或直接 右鍵》任務管理器》服務》打開服務)

               

  Step 6:  測試安裝是否成功

    方式1: 在cmd中直接打開mongo的客戶端(就像mysql黑視窗),將/bin/mongo.exe拖到cmd中,回車運行

    

         方式2: 在瀏覽器中輸入   localhost:27017   會看到一句英語提示

    

    此時mongodb已經安裝完成。

2)  安裝出錯: 無mogoDB服務項

  錯誤描述: 按照上述步驟安裝mongodb, 未出現error等錯誤語句,準備啟動mongodb時,在服務中居然沒有mongo該服務項??

  原因分析: cmd直接運行的,可能需要管理員運行

  最終解決:用管理員身份重新執行安裝一次

二. 基本概念

     (1) NoSQL : Not Only SQL  ,既非關係型的資料庫

     (2) 文檔(document)  (就是記錄)

                         i.              文檔 (document) – 相當於 mysql 中的一條記錄

                       ii.              格式 ( key / value):   {“name”:”php”, “age”:100}

    (3) 集合(collection) (數據表)

                         i.              集合 (collection) – 相當於 mysql 中的一個表

                       ii.              無須規定任何結構  如{ “name” : “php” } 

    (4) 每個文檔(每條記錄)都有一個 “_id”屬性,唯標識一個文檔 (相當於mysql中的自增的主鍵

    (5) Mongodb 客戶端: db  該變數代表所當前連接的資料庫

三. 基本的增刪改查操作(CURD)

mongodb的客戶端打開,其也是一個js的編譯器,預設連接的是“test”資料庫

增刪改操作主要用到以下方法:

           增操作:  insert (添加文檔)

      查操作: find (返回所有文檔)    findOne (返回一個文檔)

           改操作:  update (修改文檔)

           刪除操作: remove (刪除文檔)

(1)增操作:  insert (添加文檔)

 1 // 添加記錄
 2 //向集合(用戶表)user中添加一條記錄
 3 var user={username:"張三",age:18}           //js中聲明一個字面量對象一樣  (欄位名如username不加引號是可以的)
 4 db.user.insert(user)                                 //添加
 5 db.user.find()                                         //查詢結果
 6 
 7 -- 向集合user中添加一條日誌記錄
 8 var blog = {"title":"Mongodb學習",content:"一起來玩一把mongodb","addtime":"2018-01"}
 9 db.user.insert(blog)
10 db.user.find()

  說明: 1-欄位名(對應js中屬性名字) 可以加引號也可以不加引號。不加系統會自動加上

        2- 上面的代碼可以直接複製到mongodb客戶端直接運行(上述代碼中"//"在客戶端運行也是註釋符)。註意,複製後點擊右鍵自動粘貼上去

     3-  每行語句末尾可以加分號回車,也可以不加直接回車,這個和js是一樣的

        4- 執行命令值,也可以不用聲明使用變數,直接將值放到函數中也是一樣的。如db.user.insert({"username":"張三","age":18})

(2)查操作: find (返回所有文檔)    findOne (返回一個文檔)

//查詢記錄
db.user.findOne()     //查詢出第一條記錄
db.user.find()    //查詢出所有的記錄

//查詢出年齡等於18歲所有記錄
var user={"username":"張三","age":18};   //準備添加測試數據
var user1={"username":"李四","age":28};
var user2={"username":"王五","age":38};
var user3={"username":"趙六","age":18};
db.user.insert(user);
db.user.insert(user1);
db.user.insert(user2);
db.user.insert(user3);
db.user.find({age:18})//查詢出年齡等於18歲所有記錄

查詢出年齡等於18歲且姓名名是"趙六" 的記錄
db.user.find( { age:18,username:"趙六" } )

註意: 欄位引號可加可不加,但是如果值是字元串有引號,則查詢也必須加上

//下麵2條查詢是不一樣的,如果記錄中是整型的18 則最下麵的一條是查不到記錄的
db.user.find({age:18})  
db.user.find({age:"18"})  

(3)改操作:  修改記錄  update(where,data)  ,  save()

update方法的第一個參數為“查找的條件”,第二個參數為“更新的值”

//修改張三年齡為80
//方式1
db.user.findOne({username:"張三"})
var u=db.user.findOne({username:"張三"})
u.age=20
db.user.save(u);
db.user.findOne({username:"張三"})
//方式2
db.user.update({username:"張三"},{username:"張三",age:18}) //要註意第2個{}值是最終值,如果漏了其他值,則其他未寫的值會全部自動刪除掉了
db.user.findOne({username:"張三"})

(4)刪除操作: remove (刪除文檔)

//--刪除記錄
db.user.remove({});   //刪除所有user集合中的數據
//刪除age=18的記錄
db.user.remove({age:18})  //僅刪除user集合中的age=18的記錄

舊版本的remove中如果不帶參數將刪除所有數據,但此版本(新版)中如果不給參數會報錯,給一個空值,就可以刪除所有記錄。刪除是很危險的操作,且不可撤回,所以刪除一定要謹慎

 技巧提示:

  1-在mongodb客戶端中可以按: ctrl+l 可以清屏 (這個清空屏幕要知道,清了以後,想看前面的操作結果可就看不到了哦)

       2- 輸入: db.help()  會給出一些資料庫級操作的幫助。如果要查看集合級的幫助則輸入:db.集合名.help()  如:db.user.help()

  3- 如果想像mysql一樣快速在黑視窗運行,我們可以將mongo執行目錄加入到環境變數中。下次運行則直接敲如: mongo 就可以運行客戶端了

本來準備將php支持的配置也寫下來,可以在網上編輯文檔有點慢。如果能直接導入word就好了。不知道大家是如何快速編輯的。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在日常的運維工作中,經常會用到nginx服務,也時常會碰到nginx因高併發導致的性能瓶頸問題。今天這裡簡單梳理下nginx性能優化的配置(如有不妥,敬請指出~) 一、這裡的優化主要是指對nginx的配置優化,一般來說nginx配置文件中對優化比較有作用的主要有以下幾項:1)nginx進程數,建議按 ...
  • 1,ls 查看當前文件夾下的文件 2,ls -a 查看當前文件夾下的隱藏文件 3,ls -l 查看當前文件夾下的文件,以列表的形式 4,ls -h 查看當前文件夾下的文件,換算大小格式 5,支持寫法:ls -ahl、ls -lha 補充:ls /bin 查看/bin目錄下的內容,此命令無需在bin目 ...
  • 1、在官網下載JDk http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html 如果是64位的操作系統,可以下載64位或者32位的jdk,但是32位的系統不能運行64位的jdk。 2、解壓jdk-x.x.x.tar.g ...
  • 1、安裝PCRE庫 到www.pcre.org 下載pcre-8.37.tar.gz tar -zxvf pcre-8.37.tar.gz cd pcre-8.37 ./configure make make install 2、安裝zlib庫 到www.zlib.net 下載zlib-1.2.8. ...
  • .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(註:tar是打包,不是壓縮!)———————————————.gz解壓1:gunzip FileName.gz解壓2:gzip -d FileName.gz壓縮:gzip FileN ...
  • Linux下簡單好用的工具rinetd,實現埠映射/轉發/重定向官網地址http://www.boutell.com/rinetd 軟體下載wget http://www.boutell.com/rinetd/http/rinetd.tar.gz 解壓安裝tar zxvf rinetd.tar.g ...
  • 1、伺服器Git安裝配置 相關鏈接 相關鏈接 註意ssh-keygen 、修改許可權 許可權: 相關鏈接 2、本地獲取 git clone name@ip:伺服器項目位置 相關鏈接 3、創建本地分支推送到遠程 git branch name git push origin name 3.1 伺服器許可權配 ...
  • linker文件是在鏈接階段所要用到的文件,source文件在編譯過程完成之後,需要再經過鏈接器從而將二進位數據有序組織起來形成最終的二進位可執行文件,linker文件就是用來指示鏈接器如何組織編譯生成的二進位數據。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...