mongodb的基本操作與插入文檔(document)

來源:互聯網
上載者:User

標籤:

一.mongodb的基本操作:

  1.查看mongodb當前所有的databases : show dbs

  2.選擇資料庫(database) : use databaseName(該資料庫不存在則會自動建立,但是只存在於mongodb預設的緩衝中,如果你不做任何操作,關閉資料庫,那麼該資料庫也就不存在了,如果你往該庫中添加了資料,那麼該庫就被真正的建立了)

  3.查看資料庫中的集合(collection) : show collections 

  4.擷取mongodb中的協助 : db.help() 裡面有很多的實用性的操作,在你不知道mongodb有哪些操作的時候很有協助

  5.刪除資料庫 : use databaseName(必須先選擇要刪除的資料庫), db.dropDatabase()

  6.刪除指定資料庫下面的集合: use databaseName(必須先選擇要刪除集合的資料庫), db.collectionName.drop()

二.mongodb插入文檔

  因為我們的mongodb使用javascript做shell的,所以可以說mongodb的用戶端編程跟javascript差不多

  往集合中插入的文檔,其格式與json基本一樣,所以儲存在集合中的文檔的格式都是bson,bson是一種類json的二進位形式的儲存格式,稱之為binary json

  往集合中插入新的文檔有兩種方式,一種是insert(),一種是save()

  區別:

    insert()方法:當插入資料時,已經存在的_id的資料,則mongodb會直接報錯,並返回對應的_id

    save()方法:當插入資料時,它會先去迴圈一遍集合中的所有資料,判斷插入的資料的_id是否存在於集合中,如果不存在則會直接插入一條新的文檔,如果存在,則會調用mongodb的update()方法,更新_id對應的資料(相當於覆蓋該_id的文檔內容)

  文法:

    db.collectionName.insert(document)

    db.collectionName.save(document)

  注意:

    1.在插入資料之前,需要注意的是mongodb對於field(欄位)的資料類型非常的敏感,比如你插入了一個age欄位,內容為30,是一個string類型的,但是你如果用一個整型30去查詢,是查不到該資料的,因為資料類型不對,所以插入資料的時候要謹慎,考慮好欄位的類型

    2.雖然mongodb靈活性很強,不像關係型資料庫那樣,建立一個新的欄位,所有的資料都有該欄位,但是在實際開發中,本人還是建議你插入資料盡量保持每一個集合的欄位都相同,這樣方便你在程式中的開發

  1.插入文檔方法之insert()

    

    

    從可以看出,當你插入一條資料成功後,會返回寫入的結果,插入成功,插入1條[ WriteResult({ "nInserted" : 1 }) ],而且你會發現,每條資料前面出現了一個"_id"的,它跟我們使用的關係型資料庫不太一樣,我們使用的關係型資料庫一般primary key都是id,而且是自增的(1,2,3,4.....),而它這個是mongodb內為每條文檔產生的一個唯一的標識,也具有唯一性,但是不會像關係型資料庫那樣自增而已,當然我們也可以插入指定的"_id"(等下說save()的時候再實踐)

    a.當我們插入一條資料,這個"_id"已經存在了,會發生什麼呢?

      

    b.當然insert()方法也可以插入_id(自訂_id的值,而不使用mongodb產生的_id),指定它的值跟我們關係型資料庫一樣(1,2,3,4,5,6....)

         

    c. mongodb能不能跟關係型資料庫一樣批量插入呢?關係型資料庫批量插入:insert into tablename(columns)values(text1),(text2),(text3).........,而我們的mongodb是不能批量插入的,只能通過迴圈來實現批量插入

      

    d.在mongodb中每個document的欄位field可以不相同(mongodb的靈活性,但是不建議這麼做)

      

  2.插入文檔方法之save():

    與insert()方法差不多都是插入文檔,唯一的不同就是如果_id存在,save()則會更新這條_id對應的資料,而insert則是直接報錯,並返回該_id

    

    也可以批次更新,同時不存在的則插入,存在的則更新(_id只有1,2,3,通過迴圈更新了1,2,3,同時也添加了_id為4,5的兩條資料):

    

 

  通過上面的樣本,我們可以發現:

  1.mongodb不需要事先定義collection,在第一次插入資料時,它會自動建立collection

  2.在collection中每添加一條document,除非我們自己指定_id,否則,系統都會產生一個唯一的標識ObjectId

  3.在collection中,每個document可以有不同的field(欄位)

 

  如有錯誤的地方,歡迎批評指正,本人新手,初學!!!!!!

mongodb的基本操作與插入文檔(document)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.