一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - MongoDB常用操作匯總

MongoDB常用操作匯總

2020-05-12 17:51CSDN_GIA MongoDB

MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。在高負載的情況下,添加更多的節點,可以保證服務器性能。MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

一、增刪改查

查看當前數據庫中所有的集合,使用命令

?
1
2
show collections 或使用
show tables

創建集合有兩種方式,顯示創建和隱式創建

?
1
2
3
4
顯示創建可以使用命令 db.createCollection(“集合名稱")
隱式創建可以使用命令 db.集合名稱.insert({}),
指創建集合并同時向集合中插入數據,
例如:db.customer.insert({name:”jack”})

向集合添加文檔

使用命令 db.集合名稱.insert({}),例如:

db.user1.insert({name:”jack”,age:20})

刪除集合中的文檔

?
1
2
3
4
使用命令 db.集合名稱.remove({刪除條件}),
不加刪除條件為刪除集合中的所有文檔:
例如,刪除c1集合中的所有文檔 db.c1.remove()
刪除c1集合中name為user1的文檔 db.c1.remove({name:”user1”})

查詢集合中的文檔

?
1
2
3
db.集合名稱.find({條件})
或者使用
db.集合名稱.findOne() 查詢第一個文檔

查詢集合中的文檔,返回某些特定的鍵值
除了查詢表達式以外,MongoDB還支持一些額外的參數選項。
如果僅僅只想返回某些特定的字段值:
返回除了age字段外的所有字段
db.user.find({},{age:0});

返回tags=tennis除了comments的所有列
db.posts.find({tags:'tennis'},{comments:0});

返回userid=16的name字段
db.user.find({userid:16},{name:1});
{"_id":16,"name":"user16"}

返回x=john的所有z字段
db.things.find({x:"john"},{z:1});

查詢集合中的文檔 ,使用條件表達式(<, <=, >, >=,!=)
//大于: field > value
db.collection.find({field:{$gt:value}});

//小于: field < value
db.collection.find({field:{$lt:value}});

//大于等于: field >= value
db.collection.find({field:{$gte:value}});

//小于等于: field <= value
db.collection.find({field:{$lte:value}});

//不等于:  field != value
db.collection.find({field:{$ne:value}});

查詢集合中的文檔 ,統計(count)、排序(sort)、分頁(skip、limit)

?
1
2
3
4
5
6
7
8
9
db.customer.count();
db.customer.find().count();
db.customer.find({age:{$lt:5}}).count();
db.customer.find().sort({age:1}); 降序-1
db.customer.find().skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3).count();
db.customer.find().sort({age:-1}).skip(2).limit(3).count(0);
db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);

查詢集合中的文檔
$all主要用來查詢數組中的包含關系,
查詢條件中只要有一個不包含就不返回

$in,類似于關系型數據庫中的IN

$nin,與$in相反

$or,相當于關系型數據庫中的OR,表示或者的關系,
例如查詢name為user2或者age為3的文檔,命令為:
db.customer.find({$or:[{name:”user2”},{age:3}]})

$nor,表示根據條件過濾掉某些數據,例如查詢name不是user2,age不是3的文檔,命令為:
db.customer.find({$nor:[{name:”user2”},{age:3}]})

$exists,用于查詢集合中存在某個鍵的文檔或不存在某個鍵的文檔,例如查詢customer集合中存在name鍵的所有文檔,可以使用
db.customer.find({name:{$exists:1}})
$exists:1表示真,指存在
$exists:0表示假,指不存在

游標

更新集合中的文檔
語法:db.collection.update(criteria,objNew,upsert,multi)
參數說明:
criteria:用于設置查詢條件的對象
objNew:用于設置更新內容的對象
upsert:如果記錄已經存在,更新它,否則新增一個記錄,取值為0或1
multi:如果有多個符合條件的記錄,是否全部更新,取值為0或1

注意:默認情況下,只會更新第一個符合條件的記錄
一般情況下后兩個參數分別為0,1 ,即:
db.collection.update(criteria,objNew,0,1)

將集合中name為user1的文檔改成name為jack:
db.c1.update({name:"user1"},{name:"jack"})

$set 用來指定一個鍵的值,如果這個鍵不存在,則創建它。例如:
給name為user1的文檔添加address,可以使用命令:
db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1)
將name為user1的文檔修改address為tj,其它鍵值對不變,命令為:
db.c1.update({name:”user1”},{$set:{address:”tj”}},0,1)

使用 $inc 將集合中name為user1的age加1,其它鍵不變,
$inc表示使某個鍵值加減指定的數值
db.c1.update({name:"user1"},{$inc:{age:1}})

$unset 用來刪除某個鍵
例如刪除name為user1的文檔中的address鍵,可以使用命令:
db.c1.update({name:”user1”},{$unset:{address:1}},0,1)

二、索引:

索引就是用來加速查詢的。數據庫索引與書籍的索引類似:有了索引就不需要翻遍整本書,數據庫則可以直接在索引中查找,使得查找速度能提高幾個數量級。在索引中找到條目以后,就可以直接跳轉到目標文檔的位置。

普通索引:
創建:db.collection.ensureIndex({key:1})
查看關于索引的相關信息:db.collection.stats()
查看查詢使用索引的情況:db.collection.find({key:value}).explain()
刪除索引:db.collection.dropIndex({key:1})
刪除集合,也會將集合中的索引全部刪除

唯一索引:
創建:db.collection.ensureIndex({key:1},{unique:true})
查看關于索引的相關信息:db.collection.stats()
查看查詢使用索引的情況:db.collection.find({key:value}).explain()
刪除索引:db.collection.dropIndex({key:1})
刪除集合,也會將集合中的索引全部刪除

三、固定集合(capped collection)

固定集合指的是事先創建而且大小固定的集合 。

固定集合特性:固定集合很像環形隊列,如果空間不足,最早的文檔就會被刪除,為新的文檔騰出空間。一般來說,固定集合適用于任何想要自動淘汰過期屬性的場景,沒有太多的操作限制。

創建固定集合:
db.createCollection(“collectionName”,{capped:true,size:100000,max:100}); 
size指定集合大小,單位為KB,max指定文檔的數量

當指定文檔數量上限時,必須同時指定大小。淘汰機制只有在容量還沒有滿時才會依據文檔數量來工作。要是容量滿了,淘汰機制會依據容量來工作。

四、備份(mongodump)和恢復(mongorestore)

MongoDB提供了備份和恢復的功能,分別是MongoDB下載目錄下的mongodump.exe和mongorestore.exe文件(即在mongodb bin目錄下的命令)

備份數據使用下面的命令:
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
-d:需要備份的數據庫實例,例如:test
-o:備份的數據存放位置,例如:c:\data\dump,當然該目錄需要提
前建立,在備份完成后,系統自動在dump目錄下建立一個test目錄,這個
目錄里面存放該數據庫實例的備份數據。

恢復數據使用下面的命令:
mongorestore -h dbhost -d dbname -directoryperdb dbdirectory
-h:MongoDB所在服務器地址
-d:需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2
-directoryperdb:備份數據所在位置,例如:c:\data\dump\test

五、導入(mongoimport)和導出(mongoexport)

導出數據可以使用命令:
mongoexport -h dbhost -d dbname -c collectionName -o output
參數說明:
-h  數據庫地址
-d 指明使用的庫
-c 指明要導出的集合
-o 指明要導出的文件名

例:
mongoexport -h localhost:27017 -d test -c c4 -o d:/beifeng/c4.txt

導入數據可以使用命令:
mongoimport -h dbhost -d dbname -c collectionname 文件的地址...
參數說明:
-h  數據庫地址
-d 指明使用的庫
-c 指明要導入的集合
本地的文件地址...

例:
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt

原文鏈接:http://www.jianshu.com/p/bf3bea1d8ad7

延伸 · 閱讀

精彩推薦
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
主站蜘蛛池模板: 国产福利自产拍在线观看 | 国产综合欧美日韩视频一区 | 亚洲天堂网站 | 国产男人搡女人免费视频 | 91国内精品线免费播放 | 亚洲剧情在线观看 | 青青草精品在线观看 | 亚洲精品在线免费 | 亚洲精品国产精品精 | 欧美一级特黄特色大片 | 亚洲乱码一二三四五六区 | 亚洲天堂男人 | 亚洲精品αv一区二区三区 亚洲精品91大神在线观看 | 国产综合亚洲专区在线 | 精品亚洲欧美中文字幕在线看 | 亚洲不卡视频在线观看 | 日本mv精品中文字幕 | 亚洲国产精品福利片在线观看 | 午夜国产在线观看 | 亚洲国产精品久久网午夜小说 | 欧美人交性视频在线香蕉 | 亚洲精品欧洲久久婷婷99 | 国产亚洲欧美成人久久片 | yin娃sao货调教情趣用品店 | 国产婷婷成人久久av免费高清 | 亚州日韩精品AV片无码中文 | 四虎影视色费永久在线观看 | 日本五级床片全都免费播放 | 亚洲国产成人精品 | 亚洲精品色综合久久 | 日本黄色网页 | 贰佰麻豆剧果冻传媒一二三区 | 亚洲欧美日韩综合在线播放 | 娇喘高潮教室h | 亚洲日韩欧美一区二区在线 | 天美影视文化传媒mv免费 | 亚洲欧美国产精品久久久 | 国产在线视频一区二区三区 | 国产欧美日韩综合二区三区 | 国产大神91一区二区三区 | 国产极品麻豆91在线 |