標籤:
一.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)