MongoDB — 初識 (安裝、啓動、基本操作)

MongoDB

   非關係型數據庫

1.1 Windows環境下安裝

 官網地址:https://www.mongodb.com/download-center#community

1.2  數據目錄安裝

  安裝成功後,目錄結構如下:

MongoDB將數據目錄存儲在 db 目錄下。但是這個數據目錄不會主動創建,我們在安裝完成後需要創建它。請注意,數據目錄應該放在盤根目錄下

 在 D盤 新建文件夾 data, 文件夾 data下新建db

1.3  命令行下運行MongoDB

cmd命令,到MongoDB安裝目錄bin下

執行以下命令:    mongod --dbpath d:\data\db

如執行成功,如圖:

mongodb默認連接端口27017,如果出現如圖的情況,可以打開http://localhost:27017查看(筆者這裏是chrome),發現如圖則表示連接成功,如果不成功,可以查看端口是否被佔用。

至此,安裝成功!! 此時服務器也爲啓動狀態

1.4  MongoDB操作命令

服務啓動成功後 就需要操作了。這時候我們需要再打開一個dos窗口(服務啓動的窗口不要關閉)找到安裝路徑(我的安裝路徑 爲 D:install\mongoDB\bin) 執行  mongo 此時第一個dos窗口(也就是啓動服務的窗口會顯示)

然後,繼續在該目錄下通過命令行進行查看:

操作命令:

1. 基本操作

  操作指令 釋義
基本操作 show dbs 顯示所有數據庫 
use  xxx 選擇用哪個數據庫
db.createCollection("集合名稱",{capped:true,size:100000}) 創建集合 
document={"1":"2","3":"4"} 新建文檔
db.printCollectionStats(); 查看當前數據庫下的所有集合

 

2. 插入操作:

  可以先定義一個文檔document ,後將文檔插入到集合中。或者直接將輸入插入到集合中。

  db.集合名稱.insert(已定義的文檔);

  db.集合名稱.insert(數據);

3. 查詢:

  db.集合名稱.find();顯示文檔

  db.集合名稱.find(where);

  查詢姓名爲字符類型的數據記錄

  :$type操作符是基於BSON類型來檢索集合中匹配的結果。

  db.集合名稱.find({"name":{$type:2}}); 

      Double 1

        String 2

        Object 3

        Array 4

        Binary data 5

        Object id 7

        Boolean 8

         Date 9

         Null 10

         Regular expression 11

         JavaScript code 13

         Symbol 14

         JavaScript code with scope 15

         32-bit integer 16

         Timestamp 17

         64-bit integer 18

         Min key 255

         Max key 127

       db.集合名稱.find({條件}).limit(10); // 滿足條件的,取10條

3. 更新操作

  db.集合名稱.update(where,set,未找到插入新的爲true,更新多條爲true);

  db.集合名稱.update({"id":"1"},{"$set":{"name":"yuan","sex":"男"}},false,true);

  更新添加字段:$push

    ---db.student.update({"sno":2},{$push:{"classes":"san"}})

4. 刪除操作

  db.集合名稱.remove(where);

  db.集合名稱.remove();刪除全部記錄

  db.集合名稱.drop();刪除全部文檔(document)

5. 操作符

   (>) 大於 - $gt ---db.student.find({"sno":{"$gt":2}})

   (<) 小於 - $lt---db.student.find({"sno":{"$lt":2}})

   (>=) 大於等於 - $gte  --示例:db.student.find({"sno":{"$gte":2}});

   (<= ) 小於等於 - $lte --

6. 其他操作

   db.集合名稱.Count(where); ---顯示滿足條件的條數---db.student.count({"sno":{$type:1}});

   db.集合名稱.distinct("key"); ---得到所有key的value(去掉重複的)---db.student.distinct("sno");

  7. 管理

         查看collection數據的大小

         db.集合名稱.dataSize()

         #查看colleciont狀態        db.集合名稱.stats()

         #查詢所有索引的大小     db.集合名稱.totalIndexSize()

8. MongoDB與MySQL對比

 

MongoDB

MySQL

查詢全部

movies.find(new Document())

SELECT * FROM movies

條件查詢

movies.Find(new Document { { "title", "Hello Esr" } });

SELECT * FROM movies WHERE title= 'foobar'

查詢數量

movies.Find(new Document { { "title", "測試2" } }).Documents.Count();

SELECT COUNT(*) FROM movies WHERE `title` = 'foobar'

數量範圍查詢

1, movies.Find(new Document().Add("$where", new Code("this.num > 50")));

2, movies.Find(new Document().Add("num",  new Document().Add("$gt",50)));
($gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=)

3,movies.Find("this.num > 50");

4,movies.Find(new Document().Add("$where",new Code("function(x){ return this.num > 50};")));

select * from movies where num > 50

分頁查詢

movies.Find(new Document()).Skip(10).Limit(20);

SELECT * FROM movies  limit 10,20

查詢排序語句

movies.Find(new Document()).Sort(new Document() { { "num", -1 } });

SELECT * FROM movies ORDER BY num DESC

查詢指定字段

movies.Find(new Document().Add("num", new Document().Add("$gt", 50)), 10, 0, new Document() { { "title", 1 } });

select title from movies where num > 50

插入語句

movies.Insert(new Document() { { "title", "測試" }, { "resuleData", DateTime.Now } });

INSERT INOT movies (`title`, `reauleDate`) values ('foobar',25)

刪除語句

movies.Remove(new Document() { { "title", "Hello Esr" } });

DELETE * FROM movies

更新語句

movies.Update(new Document() { { "title", "測試2" } }
             , new Document() { { "title", "測試11111" } });

UPDATE movies SET `title` = ‘測試1111’ WHERE `title` = '測試1111'

Linq查詢

(from item in db.GetCollection("movies").Linq()
                       where ((string)item["title"]).StartsWith("Esr")
                       select item);

select * from movies where title like ‘%Esr’

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章