MongoDB基本命令

簡介:MongoDB[1]  是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。java

mongoDB 程序員

MongoDB[2]  是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。他支持的數據結構很是鬆散,是相似jsonbson格式,所以能夠存儲比較複雜的數據類型。Mongo最大的特色是他支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引正則表達式

分佈式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不必定直接鏈接在本地節點上,而是經過計算機網絡與節點相連。分佈式文件系統的設計基於客戶機/服務器模 式。一個典型的網絡可能包括多個供多用戶訪問的服務器。另外,對等特性容許一些系統扮演客戶機和服務器的雙重角色。sql

HBase是一個分佈式的、面向列的開源數據庫,該技術來源於 Fay Chang 所撰寫的Google論文「Bigtable:一個結構化數據的分佈式存儲系統mongodb

Yonghong Data Mart是基於自有技術研發的一款數據存儲、數據處理的軟件。Yonghong Data Mart的分佈式文件存儲系統 (ZDFS)是在Hadoop HDFS基礎上進行的改造和擴展,將服務器集羣內全部節點上存儲的文件統一管理和存儲。數據庫

以上是對mongoDB的簡單介紹,經過介紹要使用MongoDB除了瞭解他的基本數據存儲,還要了解分佈式系統如何部署,以及如何解決負載均衡問題。json

如下內容是我閱讀了菜鳥教程進行的總結,主在熟悉基本命令,瞭解MongoDB功能特性等.服務器

一. 基本使用以命令方式網絡

  1. 數據庫建立

        use DATABASE_NAME數據結構

  1. 查看數據庫

  show dbsshow dbs

  1. 刪除數據庫

  db.dropDatabase()

 

  1. 插入文檔

db.user.insert({_id:1,name:’mybo’})

插入語句使用相似json的bson

  1. 更新已存在文檔

 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 :可選,拋出異常的級別。

Exmple: db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

 

 

  1. 替換文檔

    db.col.save({

"_id" : ObjectId("56064f89ade2f21f36b03136"),

     "title" : "MongoDB",

     "description" : "MongoDB 是一個 Nosql 數據庫",

     "by" : "Runoob",

     "url" : "http://www.runoob.com",

     "tags" : [

            "mongodb",

            "NoSQL"

     ],

     "likes" : 110

})

  1. 刪除文檔

  db.col.remove({'title':'MongoDB 教程'})

  刪除第一條:db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

  1. 刪全部文檔
  2. db.col.remove({})
  3. 文檔查詢

db.col.find()//查詢全部

  1. 條件查詢例子

  db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鳥教程"},{"title": "MongoDB 教程"}]}).pretty()

  1. 條件操做符
  • (>) 大於 - $gt
  • (<) 小於 - $lt
  • (>=) 大於等於 - $gte
  • (<= ) 小於等於 - $lte
  1. 類型操做

$type操做符是基於BSON類型來檢索集合中匹配的數據類型,並返回結果。

  1. limit 限制兩條數據

  db.col.find({},{"title":1,_id:0}).limit(2)

{ "title" : "PHP 教程" }

{ "title" : "Java 教程" }

  1. 咱們除了可使用limit()方法來讀取指定數量的數據外,還可使用skip()方法來跳過指定數量的數據,skip方法一樣接受一個數字參數做爲跳過的記錄條數。

db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

{ "title" : "Java 教程" }

  1. 排序

 db.COLLECTION_NAME.find().sort({KEY:1})//1 升序 2 降序

  1. 創建索引

  b.col.ensureIndex({"title":1})。

18. 聚合

        MongoDB中聚合(aggregate)主要用於處理數據(諸如統計平均值,求和等),並返回計算後的數據結果。有點相似sql語句中的 count(*)。

           db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

{

   "result" : [

      {

         "_id" : "w3cschool.cc",

         "num_tutorial" : 2

      },

      {

         "_id" : "Neo4j",

         "num_tutorial" : 1

      }

   ],

   "ok" : 1

}

  1. 正則表達式

db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})

以上是對mongoDB的命令行操做,可是對於程序員來講一些簡單命令操做能夠方便咱們使用,可是對於做爲一個從事java開發人員來講我但願是熟練l瞭解在java如何調用。

相關文章
相關標籤/搜索