mongoDB集合 文檔建立修改刪除以及查詢命令總結,mongodb修改刪除

來源:互聯網
上載者:User

mongoDB集合 文檔建立修改刪除以及查詢命令總結,mongodb修改刪除

mongodb在windows下的安裝,啟動查看上一篇:mongoDB安裝詳解


一、登入 查看資料庫 資料庫中的集合 文檔 添加文檔,修改文檔,刪除文檔

1、查看有哪些資料庫可以用:

   show dbs;     

2、查看當前使用的資料庫的名稱:

   db.getName();

3、使用某個資料庫,和mysql中一樣可以進行資料庫之間的轉化

   use  dbname;

4、 如果沒有資料庫則建立資料庫,mongodb沒有提供像mysql等的建立資料庫的語句但有相似功能的命令:如果有這個資料庫則使用這個資料庫如果沒有則建立這個資料庫

  use dbname;

 之後進行一些操作如:db.createCollection("collectionName")

// 這樣就建立了dbname 資料庫,同時也建立了一個集合

5、在當前資料庫中建立集合:

例:db.createCollection('collectionName');

6、查看當前資料庫下的所有集合:

   db.getCollectionNames();

7、擷取當前資料庫的某個指定集合:
  db.getCollection("collectionName");

8、向這個集合中添加資料:使用insert() 函數

   db.collectionName.insert({});這裡注意一下mongodb使用資料的格式為bson 如果你瞭解 jsonObject 你會發現這兩種格式很像:

BSON這種格式是專門為MongoDB而開發的,類似json的一種二進位格式。

這種格式不一定比json儲存的檔案小,其優點是解釋快。

例:db.mytest.insert({name:'name1',age:2})

9、查看這個集合中有哪些文檔:使用find()函數

例:db.mytest.find(); 

// 查詢mytest這個集合中的所有文檔

10、有條件的查詢

例:db.mytest.find({name:'name1'});  

// 查詢有name鍵,且值為name1的文檔

11、多條件查詢:

例:db.mytest.find({name:'name1',age:2})  

// 查詢name為name1age為2 的文檔

12、distinct 查詢:

例:db.mytest.distinct("name")

// 從mytest這個集合中查詢所有的文檔,但name鍵的值不能有重複

13、查詢小於某個值 或大學某個值

例:db.mytest.find({age:{$lt:2}})

// 查詢mytest這個集合中age<2的文檔

例:db.mytest.find({age:{$gt:2}})

// 查詢mytest 集合中age>2的文檔

14、大於等於,小於等於

例:db.mytest.find({age:{$lte:2}})

// 查詢mytest集合中age<=2的文檔

例:db.mytest.find({age:{$gte:2}})

// 查詢mytest集合中age>=2的文檔

15、在兩個數之間

例:db.mytest.find({age:{$lt:6,$gt:2}})

// 查詢mytest集合中age<6 and age>2的文檔

16、排序查詢: 排序使用 sort()函數

例:db.mytest.find().sort({age:1})

//按age升序

例:db.mytest.find().sort({age:-1})

//按age降序

// 進行了升序查詢

例:db.mytest.find({name:'name1'}).sort({age:1})

 

17、查詢前幾個指定文檔:使用limit()函數

例:db.mytest.find().limit(3)

// 查詢mytest集合中的前三個文檔

18、in,notin查詢:$in $nin

例:db.mytest.find({age:{$in:[2,3,4]}})

// 從mytest集合中查詢age為2或3或4的文檔和mysql的in是相似的

例:db.mytest.find({age:{$nin:[2,3,4]}})

// 從mytest集合中查詢age不為2並且不為3並且不為4的文檔

19、or查詢使用$or

例:db.mytest.find({$or:[{name:'name1'},{age:3}])

// 查詢name為name1或age為3的文檔

20、查詢這個集合中有多少條資料:

例:db.mytest.count();

21、刪除集合中的某個文檔,或所有文檔使用remove()函數

例:db.mytest.remove({name:'name1'}) 

// 從mytes集合中刪除有name鍵並且值值為name1的那個文檔

例:db.mytest.remove()

// 刪除mytest集合中的所有文檔

22、刪除某個集合:使用drop()函數

例:db.mytest.drop()

// 刪除mytest這個集合

23、刪除當前資料庫:使用dropDatabase()函數

例:db.dropDatabase();

 

二、  修改器

1、替換某個檔案使用 update命令

例:db.mytest.update({name:'name1'},{name:'name1',age:2});

//將 mytest這個集合中name為name1的文檔用後面的替換掉

// 在update中有兩個參數,第一個就是要被替換的文檔,第二個就是要替換的文檔

2、這樣我們想修改一下的話很麻煩,所以我們要使用$set修改器來修改:

例:db.mytest.update({name:'name',{$set:{name:'name2'}}})

// 將mytest集合中的name:'name'的檔案修改name:'name2'

// $set 修改器和update替換不同,他的第一個參數,是來找到這個檔案,第二個參數就是要修改的屬性欄位,如果不存在則新增這個鍵值對,如果有則修改他的值

 

3、如果有則增加指定的數量級,如果不存在則添加鍵值對:

例:db.mytest.update({name:'name1'},{$inc:{age:3}})

//在mytest這個集合中尋找鍵值為name:name1的文檔,如果文檔中有age鍵則在原有的值上添加3如果沒有則添加這個鍵值對

4、數組修改器,如果這個數組有則在數組的最後添加值,如果這個數組沒有則建立數組:

例:db.mytest.update({name:'name1'},{$push:{comment:{name:'cname',age:6,comment:'good'}}})

//在mytest集合中尋找name:'name1'的鍵值的文檔,找到之後再往這個文檔中添加一個comment數組,數組中的內容包括name,age,comment

db.mytest.update({name:'name1'},{$push:{comment:{name:cname1,age:7,comment:'good2'}}})

// 第二次操作的時候,comment這個集合已經存在了,所以就會將這些鍵值對作為資料的一個元素,添加到comment數組的最後

 

5、addToSet向指定的鍵添加值,而指定的這個鍵作為數組名稱了:

例:db.mytest.update({name:'name1'},{$addToSet:{email:'a@163.com'}})

// 通過addToSet向mytest集合的鍵值為name:name1的這個文檔中添加了一個email數組,如果數組中有則不會再次添加,如果沒有則會添加

6、addToSet 和 each 組合一次向數組中添加多個值:

例:db.mytest.update({name:'name1'},{$addToSet:{email:{$each:['a@.com','b@.com','c@.com']}}})

// 通過each的遍曆將多個值一次添加到email這個數組中


注意:這裡強調一下,在mongodb中使用的就是bson這個格式多以,你也會發現,我們使用的insert(),find() remove() 等函數的參數都是用bson這種格式來寫的。

 

三、BSON瞭解

簡單瞭解BSON:

BSON是一種類json的一種二進位形式的儲存格式,簡稱BinaryJSON,它和JSON一樣,支援內嵌的文檔對象和數組對象,但是BSON有JSON沒有的一些資料類型,如Date和BinData類型。

BSON可以做為網路資料交換的一種儲存形式,這個有點類似於Google的ProtocolBuffer,但是BSON是一種schema-less的儲存形式,它的優點是靈活性高,但它的缺點是空間利用率不是很理想,

BSON有三個特點:輕量性、可遍曆性、高效性

 

格式對比:

(1)、bson: {key:value}

(2)、json:{key:value}

(3)、Map:{key=value}

 

 

 

 

 

 

 

相關文章

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.