中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB基本概念及使用

發布時間:2020-05-21 23:19:43 來源:網絡 閱讀:192 作者:wx5acc326ba509b 欄目:系統運維

MongoDB簡介

簡介:MongoDB是一個基于分布式文件存儲的開源數據庫系統,它基于文檔(document,即關系型數據庫中的行的概念)進行存儲,以key=>value的形式進行存儲,類似于JSON的格式。mongodb是屬于文檔型的非關系型數據庫,是開源、高性能、高可用、可擴展的。

MongoDB和關系型數據庫的對比

下圖為sql術語與mongodb術語的對比:
MongoDB基本概念及使用

文檔

文檔是 MongoDB 中數據的基本單元,理解起來很簡單,就是一組數據有序的放在一起就是文檔。
例如:
單鍵值文檔 {"userName":"Bertram"}
多鍵值文檔 {"_id" : ObjectId("ff4a0ead0c5fc752b13f2af441b7da12"), "name" : "Bertram", "countryName" : "Japan" }

集合

多個文檔放在一起就是集合。

數據庫

多個集合放在一起就是數據庫。

shell 部分命令表

1)show dbs 顯示所有數據庫

> show dbs       //新創建的數據庫不會顯示。需要寫入一些數據,才會顯示。
admin  (empty)
local  0.078GB
test   0.078GB
service 0.058GB
> 

2)db 顯示當前數據庫

> db 
test

3)use 切換 或 創建數據庫

> use local     //如果數據庫不存在,則創建數據庫,否則切換到指定數據庫。
switched to db local
> db
local
> 

MongoDB之數據庫,集合,文檔基本操作

1.MongoDB 創建數據庫以及刪除數據庫

1) 創建數據庫 :use  DATABASE_NAME  
   如果數據庫不存在,則創建數據庫,否則切換到指定數據庫

2)刪除數據庫  : db.dropDatabase() 

2.創建集合以及刪除集合

1)創建集合: db.createCollection(name, options)
參數說明:
?   name: 要創建的集合名稱
?   options: 可選參數, 指定有關內存大小及索引的選項

2)集合刪除:
db.collection.drop()

3)如果要查看已有集合,可以使用 show collections 或show tables命令:
> show collections 或 show tables

4)實例:
下面是帶有幾個關鍵參數的 createCollection() 的用法:
創建集合(整個集合空間大小 10240KB, 文檔最大個數為17855200個。)
> db.createCollection('replicationColletion', {'capped':true, 'size':10240, 'max':17855200})
{ "ok" : 1 }
>
在 MongoDB 中,你不需要創建集合。當你插入一些文檔時,MongoDB 會自動創建集合。
> db.curriculum.insert({"name" : "English"})
> show collections
curriculum

3.插入文檔

1) 插入文檔:
MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語法如下:
db.serviceLECTION_NAME.insert(document)
實例:
以下文檔可以存儲在 MongoDB 的 runoob 數據庫 的 service 集合中:
>db.service.insert({title: 'MongoDB 學習', 
    description: 'MongoDB 是一個 Nosql 數據庫',
    by: '51CTO博客',
    url: 'https://docs.mongodb.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
以上實例中 service 是集合名,如果該集合不在該數據庫中,MongoDB 會自動創建該集合并插入文檔。

2)查看已插入文檔:
> db.service.find()
{ "_id" : ObjectId("5e143d32183a994d1b71c06a"), "title" : "MongoDB 學習", "description" : "MongoDB 是一個 Nosql 數據庫", "by" : "51CTO博客", "url" : "https://docs.mongodb.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
-----
3)我們也可以將數據定義為一個變量,如下所示:
> document=({title: 'MongoDB 學習', 
    description: 'MongoDB 是一個 Nosql 數據庫',
    by: '51CTO博客',
    url: 'https://docs.mongodb.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});
執行后顯示結果如下:
{
    "title" : "MongoDB 學習",
    "description" : "MongoDB 是一個 Nosql 數據庫",
    "by" : "51CTO博客",
    "url" : "https://docs.mongodb.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
執行插入操作:
> db.service.insert(document)
WriteResult({ "nInserted" : 1 })
插入文檔你也可以使用 db.service.save(document) 命令。如果不指定 _id 字段 save() 方法類似于 insert() 方法。如果指定 _id 字段,則會更新該 _id 的數據。

4.查詢文檔

--MongoDB 查詢文檔使用 find() 方法。
--find() 方法以非結構化的方式來顯示所有文檔。
--MongoDB Limit() 方法
如果你需要在MongoDB中讀取指定數量的數據記錄,可以使用MongoDB的Limit方法,limit()方法接受一個數字參數,該參數指定從MongoDB中讀取的記錄條數。
--count查詢記錄條數
--MongoDB Skip() 方法
除了可以使用limit()方法來讀取指定數量的數據外,還可以使用skip()方法來跳過指定數量的數據,skip方法同樣接受一個數字參數作為跳過的記錄條數。

實例:
> db.service.find()
{ "_id" : ObjectId("5e143d32183a994d1b71c06a"), "title" : "MongoDB 學習", "description" : "MongoDB 是一個 Nosql 數據庫", "by" : "51CTO博客", "url" : "https://docs.mongodb.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 
> db.service.find({},{"title":"0","_id":"1"}).limit(1)
{ "_id" : ObjectId("5e143d32183a994d1b71c06a"), "title" : "MongoDB 學習" }
> db.service.find().limit(2)
{ "_id" : ObjectId("5e143edc183a994d1b71c06b"), "title" : "Python 教程", "description" : "Python 是一種編程語言", "by" : "51CTO博客", "url" : "https://www.python.org", "tags" : [ "Python", "programme", "language" ], "likes" : 120 }
注:如果查詢 find 沒有指定limit()方法中的參數則顯示集合中的所有數據。
> db.service.find().count()    //查詢并統計結果記錄數
> db.service.count()             //統計數據量
以下實例只會顯示第二條文檔數據
> db.service.find({},{"title":"1",_id:0}).limit(1).skip(1)
{ "title" : "Python 教程" }
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

齐齐哈尔市| 蓬莱市| 梅州市| 宜宾市| 祁东县| 林西县| 江孜县| 克什克腾旗| 永登县| 平顶山市| 琼中| 通山县| 贵港市| 玛纳斯县| 临汾市| 巴中市| 工布江达县| 和龙市| 赤壁市| 湖口县| 阳信县| 五常市| 阿城市| 乌鲁木齐县| 山阳县| 攀枝花市| 郧西县| 武川县| 雷山县| 滨州市| 综艺| 亚东县| 安平县| 习水县| 交城县| 安化县| 图木舒克市| 固始县| 曲麻莱县| 山阴县| 邵武市|