mongoDB使用記錄

来源:https://www.cnblogs.com/c-night/archive/2017/12/27/8125526.html
-Advertisement-
Play Games

一些mongodb學習的相關知識,記錄下來以便下次查看使用 參考:https://docs.mongodb.com/manual/reference/operator/ http://www.runoob.com/mongodb/mongodb-tutorial.html https://code. ...


一些mongodb學習的相關知識,記錄下來以便下次查看使用

參考:https://docs.mongodb.com/manual/reference/operator/

   http://www.runoob.com/mongodb/mongodb-tutorial.html

   https://code.ziqiangxuetang.com/mongodb/mongodb-tutorial.html

1)安裝

  windows安裝:https://www.mongodb.com/download-center#community

  linux安裝(ubuntu):sudo apt-get install mongodb

  windows環境下,在安裝目錄下的Server\3.6\bin\目錄下麵有一個mongo.exe,雙擊打開即可

  linux環境下,打開終端輸入mongo即可

2)MongoDB數據結構簡述

  結合mysql數據結構對比

  

  

3)數據操作

  查看所有資料庫:show dbs

  創建或切換資料庫:use dbname (若資料庫存在則切換,不存在則創建)

  刪除當前資料庫:db.dropDatabase()

  查看資料庫所有表:show tables

  mongoDB中所有數據操作都使用javascript語法

  1.插入操作

    首先 切換到某資料庫,若不切換,則預設在test資料庫中操作

    上圖的兩條數據中,id為1的數據,插入操作為

db.testable.insert({
   'user_name':'Mark Hanks',
   'email':'[email protected]',
   'age':25,
   'city':'Los Angeles'       
})

    insert操作,若testable表存在,則會在該表中插入該條數據,若不存在則會創建該表,再插入該條數據

    mongoDB會自動創建欄位_id,類型為object id

 

    插入文檔你也可以使用 db.testable.save(document) 命令。如果不指定 _id 欄位 save() 方法類似於 insert() 方法。如果指定 _id 欄位,則會更新該 _id 的數據。

  2.查詢操作

    更詳細的查詢操作請參考https://docs.mongodb.com/manual/reference/operator/query/

    db.collection.find(query, projection)

    query為查詢條件,projection使用投影操作符指定返回的鍵,忽略該參數則返回所有鍵

    查詢該集合中所有數據:

    db.testable.find().pretty()

    find()預設參數則查詢所有數據,追加pretty()函數,則可以格式化返回的文檔數據

    例如要查詢上面添加的數據,則

db.testable.find({
   'name':'Mark Hanks' 
})

    該操作查詢姓名欄位為Mark Hanks的數據

    若要查詢年齡大於20的數據則

db.testable.find({
   'age':{'$gt':20}
})

    上述操作查找年齡大於20的數據 gt 對應英文 greater than

    相應的比較符號還有:

      $gt:大於 (greater than)

      $gte:大於等於(greater than equal)

      $lt:小於(less than)

      $lte:小於等於(less than equal)

    若想要多次比較,則用逗號隔開即可,比如查詢大於20小於25的文檔

db.testable.find({
   'age':{'$gt':20,'$lt':25} 
})

    還可以通過數據類型進行比較,比如查詢name欄位為string類型的數據

db.testable.find({
   'name':{'$type':2} 
})

    2為string的類型號,對應的代碼如圖

    若想實現跳過多少條數據,再去多少條數據的操作則可以實用skip函數和limit函數

    例如想要跳過前5條數據,取出5條數據,則:

db.COLLECTION_NAME.find().limit(5).skip(5)

    limit限制取出數據的條數,skip限制跳過數據的條數

  3.刪除操作

    remove() 方法的基本語法格式

db.collection.remove(
   <query>,
   <justOne>
)

    MongoDB 2.6 版本以後的語法格式

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

    其中:

    •   query :(可選)刪除的文檔的條件。
    •   justOne : (可選)如果設為 true 或 1,則只刪除一個文檔。
    •   writeConcern :(可選)拋出異常的級別

    例如,要刪除上面插入的數據,可以執行操作

db.testable.remove({
   {'name':'Mark Hanks'} ,
   {justOne:true} 
})

    上述操作的意思是,刪除一條name為Mark Hanks的數據,若justOne為false,則刪除所有name為Mark Hanks的數據,預設為false

    若祥清空該集合中的所有數據,則執行db.testable.remove({})即可

  4)更新操作

    語法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
    •   query : update的查詢條件,類似sql update查詢內where後面的。
    •   update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的
    •   upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
    •   multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
    •   writeConcern :可選,拋出異常的級別。

    例如,要將user_name為Mark Hanks的數據的年齡設置為30

db.collection.update(
   {'user_name':'Mark Hanks'},
   {'$set':{'age':30}},
   {
     multi: true
   }
)

    更詳細的update操作請參考https://docs.mongodb.com/manual/reference/operator/update/


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

-Advertisement-
Play Games
更多相關文章
  • 第一個裡程碑:檢查系統是否支持ppp [root@m01 ~]# cat /dev/ppp cat: /dev/ppp: No such device or address 如果出現以上提示則說明ppp是開啟的,可以正常架設pptp服務,若出現Permission denied等其他提示,你需要先去 ...
  • 1. 前言 前一篇配置SQL Server on Linux(1),地址:http://www.cnblogs.com/fishparadise/p/8125203.html ,是關於更改資料庫排序規則的。實現的原理跟在Windows平臺差不多,都是需要備份用戶資料庫,重建系統資料庫來實現的,不過操 ...
  • PL/SQL Developer使用技巧(部分) 關鍵字自動大寫 在sql命令視窗中輸入SQL語句時,想要關鍵字自動大寫,引人註目該怎麼辦呢? 一步設置就可以達成了。點擊Tools->Preference->Editor,看到截圖中這個Keyword case,一般預設是Unchanged,在下拉框 ...
  • 上一篇《MapReduce多種join實現實例分析(一)》,大家可以點擊回顧該篇文章。本文是MapReduce系列第二篇。 一、在Map端進行連接使用場景:一張表十分小、一張表很大。用法:在提交作業的時候先將小表文件放到該作業的DistributedCache中,然後從DistributeCache ...
  • 1.1 存儲引擎的介紹 1.1.1 文件系統存儲 文件系統:操作系統組織和存取數據的一種機制。文件系統是一種軟體。 類型:ext2 3 4 ,xfs 數據。 不管使用什麼文件系統,數據內容不會變化,不同的是,存儲空間、大小、速度。 1.1.2 mysql資料庫存儲 MySQL引擎: 可以理解為,My ...
  • 新用戶一天內不准提問...Sql Server Configuration Manager 網路配置為空,沒有實例無法設置ip和埠進行連接.。 ...
  • 表名tb_school(學校表:存儲學校的基本信息) 欄位 類型 介紹 屬性 其他 schoolid Int 學校id 主鍵 SchoolName Varchar(20) 學校名稱 非空 SchoolPrincipal Varchar(20) 學校校長 非空 SchoolAdd Varchar(20 ...
  • Tableau支持大量的文件類型數據的連接和資料庫連接 但是Tableau不能直接連接MongoDB資料庫,需要藉助MongoDB Connector for BI 官方解釋 下載安裝完成之後,會在安裝目錄的bin目錄下出現兩個可執行文件mongodrdl.exe和mongosqld.exe 官方文 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...