mongodb經常使用命令速查

1、登陸 查看數據庫 數據庫中的集合 文檔 添加文檔,修改文檔,刪除文檔

一、查看有哪些數據庫能夠用:mysql

   show dbs;     sql

二、查看當前使用的數據庫的名稱:mongodb

   db.getName();數據庫

三、使用某個數據庫,和mysql中同樣能夠進行數據庫之間的轉化json

   use  dbname;數組

四、 若是沒有數據庫則建立數據庫,mongodb沒有提供像mysql等的建立數據庫的語句但有類似功能的命令:若是有這個數據庫則使用這個數據庫若是沒有則建立這個數據庫網絡

  use dbname;less

 以後進行一些操做如:db.createCollection("collectionName")函數

// 這樣就建立了dbname 數據庫,同時也建立了一個集合對象

五、在當前數據庫中建立集合:

例:db.createCollection('collectionName');

六、查看當前數據庫下的全部集合:

   db.getCollectionNames();

七、獲取當前數據庫的某個指定集合:
  db.getCollection("collectionName");

八、向這個集合中添加數據:使用insert() 函數

   db.collectionName.insert({});這裏注意一下mongodb使用數據的格式爲bson 若是你瞭解 jsonObject 你會發現這兩種格式很像:

BSON這種格式是專門爲MongoDB而開發的,相似json的一種二進制格式。

這種格式不必定比json存儲的文件小,其優勢是解釋快。

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

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

例:db.mytest.find(); 

// 查詢mytest這個集合中的全部文檔

十、有條件的查詢

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

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

十一、多條件查詢:

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

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

十二、distinct 查詢:

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

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

1三、查詢小於某個值 或大學某個值

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

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

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

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

1四、大於等於,小於等於

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

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

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

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

1五、在兩個數之間

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

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

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

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

//按age升序

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

//按age降序

// 進行了升序查詢

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

 

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

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

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

1八、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的文檔

1九、or查詢使用$or

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

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

20、查詢這個集合中有多少條數據:

例:db.mytest.count();

2一、刪除集合中的某個文檔,或全部文檔使用remove()函數

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

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

例:db.mytest.remove()

// 刪除mytest集合中的全部文檔

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

例:db.mytest.drop()

// 刪除mytest這個集合

2三、刪除當前數據庫:使用dropDatabase()函數

例:db.dropDatabase();

 

2、  修改器 

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

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

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

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

二、這樣咱們想修改一下的話很麻煩,因此咱們要使用$set修改器來修改:

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

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

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

 

三、若是有則增長指定的數量級,若是不存在則添加鍵值對:

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

//在mytest這個集合中查找鍵值爲name:name1的文檔,若是文檔中有age鍵則在原有的值上添加3若是沒有則添加這個鍵值對

四、數組修改器,若是這個數組有則在數組的最後添加值,若是這個數組沒有則建立數組:

例: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數組的最後

 

五、addToSet向指定的鍵添加值,而指定的這個鍵做爲數組名稱了:

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

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

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

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

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

 

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

 

3、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}

相關文章
相關標籤/搜索