mongoDB使用記錄


一些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':'mark@abc.com',
   '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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM