MongoDB基礎知識 01

來源:互聯網
上載者:User

標籤:style   blog   color   java   使用   os   io   strong   

MongoDB基礎知識 

1. 文檔 

文檔是MongoDB中的資料的基本單元,類似於關係型資料庫管理系統的行。

文檔是索引值對的一個有序集。通常包含一個或者多個索引值對。

例如:

{”greeting" : "Hello, world!", "foo", 3}

 

2. 集合(collection)

集合就是一組文檔,類似關係型資料庫中的一張表。

 

3. 資料庫(database)

多個文檔組成集合,多個集合組成資料庫。一個MongoDB執行個體可以承載多個資料庫。

MongoDB中保留的有特殊語義的資料庫:admin, local, config。

 

4. 啟動MongoDB

運行mongod,啟動資料庫伺服器。

Last login: Fri Aug 22 11:03:36 on ttys001zhangxindeMacBook-Pro:~ zhangxin$ mongodmongod --help for help and startup options2014-08-22T11:51:55.900+0800 [initandlisten] MongoDB starting : pid=596 port=27017 dbpath=/data/db 64-bit host=zhangxindeMacBook-Pro.local2014-08-22T11:51:55.901+0800 [initandlisten] 2014-08-22T11:51:55.901+0800 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 10002014-08-22T11:51:55.901+0800 [initandlisten] db version v2.6.42014-08-22T11:51:55.901+0800 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee9102014-08-22T11:51:55.901+0800 [initandlisten] build info: Darwin bs-osx108-4 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root:xnu-2050.48.12~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_492014-08-22T11:51:55.901+0800 [initandlisten] allocator: system2014-08-22T11:51:55.901+0800 [initandlisten] options: {}2014-08-22T11:51:55.902+0800 [initandlisten] journal dir=/data/db/journal2014-08-22T11:51:55.902+0800 [initandlisten] recover : no journal files present, no recovery needed2014-08-22T11:51:55.996+0800 [initandlisten] waiting for connections on port 27017

 

 

 

mongod在沒有參數的情況下會使用預設資料目錄,/data/db (windows系統中是C:\data\db),如果目錄不存在或者不可寫,伺服器啟動會失敗。

在mac或者linux下可以用mkdir -p /data/db/ ,確保建立的目錄有寫入權限。

 

關閉mongod,可用 Ctrl + C來關閉。

 

5. MongoDB shell 簡介

在確保mongod 已經啟動的情況下,開啟一個新的命令列運行mongo啟動shell。

Last login: Fri Aug 22 11:51:24 on ttys001zhangxindeMacBook-Pro:~ zhangxin$ mongoMongoDB shell version: 2.6.4connecting to: testServer has startup warnings: 2014-08-22T11:51:55.901+0800 [initandlisten] 2014-08-22T11:51:55.901+0800 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000> 

 

 

shell是一個功能完備的JavaScript解譯器,可運行任何JavaScript程式。

5.1 要查看當前指向哪個資料庫,可以使用db命令:

為方便SQL shell的使用者,shell還包含了一些非JavaScript文法的擴充。

選擇資料庫使用use + dbname(資料庫名稱),再使用db 查看db變數,則發現已經指向了dbname資料庫。

Last login: Fri Aug 22 11:51:24 on ttys001zhangxindeMacBook-Pro:~ zhangxin$ mongoMongoDB shell version: 2.6.4connecting to: testServer has startup warnings: 2014-08-22T11:51:55.901+0800 [initandlisten] 2014-08-22T11:51:55.901+0800 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000> dbtest> use zhangxindbswitched to db zhangxindb> dbzhangxindb> 

 

 

5.2 shell 中的基本操作

5.2.1 建立

insert 函數可將一個文檔添加到集合中。

建立一個名為post的局部變數,這是一個JavaScript對象,用於表示我們的文檔。

> post = {"title":"My Blog Post", "content":"Here‘s my blog post.", "date":new Date() }{    "title" : "My Blog Post",    "content" : "Here‘s my blog post.",    "date" : ISODate("2014-08-22T03:53:31.624Z")}> 

 

這個對象是一個有效MongoDB文檔,用insert方法儲存到blog集合中。

> db.blog.insert(post)WriteResult({ "nInserted" : 1 })> db.blog.findOne(){    "_id" : ObjectId("53f6bee6ef70aed220766a98"),    "title" : "My Blog Post",    "content" : "Here‘s my blog post.",    "date" : ISODate("2014-08-22T03:53:31.624Z")}> 

 

 

5.2.2 讀取

find和findOne()方法可以用於查詢集合裡的文檔。如中所示。

5.2.3 更新

使用update修改部落格文章。update方法至少接收兩個參數,第一個是限定條件,第二個是新的文檔。比如:

> post.comments = [][ ]> post{    "title" : "My Blog Post",    "content" : "Here‘s my blog post.",    "date" : ISODate("2014-08-22T03:53:31.624Z"),    "comments" : [ ]}> db.blog.update({title:"My Blog Post"},post)WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.blog.findOne(){    "_id" : ObjectId("53f6bee6ef70aed220766a98"),    "title" : "My Blog Post",    "content" : "Here‘s my blog post.",    "date" : ISODate("2014-08-22T03:53:31.624Z"),    "comments" : [ ]}> 

 

 

4. 刪除

使用remove方法可將文檔從資料庫中永久刪除。如果沒有任何參數,會將集合內所有文檔全部刪除。

> db.blog.remove({title:"My Blog Post"})WriteResult({ "nRemoved" : 1 })> db.blog.findOne()null

 

 

 

本文適合零基礎並且想快速入門的同學,寫的非常簡略簡單就是為了用最短的時間入門,在入門後,再逐步深入,細細挖掘。不適合有基礎,或者想慢慢啃的同學,相當於是快餐吧。有錯誤請不吝賜教。

參考資料:《MongoDB權威指南》

實驗環境:mac 64位

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.