MongoDB CRUD技術(shù)操作概述_第1頁
MongoDB CRUD技術(shù)操作概述_第2頁
MongoDB CRUD技術(shù)操作概述_第3頁
MongoDB CRUD技術(shù)操作概述_第4頁
MongoDB CRUD技術(shù)操作概述_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、MongoDB CRUD技術(shù)操作概述課程內(nèi)容寫入刪除讀取文檔查詢操作更新操作寫入刪除insert- 不顯式指定_id db.insert(a:”1”) ”_id”: ObjectId(“5c7b89804310d22d46a37110”), “a”: “1”- 顯式指定_id db.insert( _id:1001 , a:”1”) “_id”: 1001 ,“a:” “1”_id_id:不支持 array支持string int等 默認(rèn)是ObjectId( )ObjectId():12字節(jié)的 ObjectId 的組成:4字節(jié)時(shí)間5字節(jié)的隨機(jī)值3字節(jié)的隨機(jī)計(jì)數(shù).- 寫入1條db.insertO

2、ne(name:jack, interest:game,sports,python, address:province:shanghai, street: lujiazui,road: century avenue No.101 )- 寫入多條db.insertMany(name:test1,age:18,gender:male,name:test2,age:19,gender:female,name:test3,age:20,gender:male,ordered: true)ordered: booleantrue : 根據(jù)list 的順序false : 不根據(jù) list的順序insert

3、db.collection.bulkWrite( insertOne :“document” : “a” : 1 , insertOne :“document” : ”b“ : 2 , deleteOne:“document” : ”b“ : 2 , ordered : )bulkWrite orderead: true 有序操作,效率低,遇錯(cuò)會(huì)退出 ordered: false 無序操作,性能高,遇錯(cuò)會(huì)繼續(xù)執(zhí)行deletedeleteOne()刪除單條文檔,滿足查詢條件的第一條deleteMany()刪除多條文檔,滿足查詢條件的所有文檔for (i=1; i=20; i+) db.testc

4、ol.insertOne( _id : i, a : i ) . / insert one document foreachdb.testcol.deleteMany( a : 1 ). / Delete the first document/ $lt is a query operator that enables us to select documents that/ are less than some value. More on operators soon. db.testcol.deleteMany( a : $lt : 5 ) / Remove three more db.t

5、estcol.deleteOne( a : $lt : 10 ) / Remove one more db.testcol.deleteMany() / Error: requires a query document. db.testcol.deleteMany( ) / All documents removeddropdb.drop()刪除集合所有的數(shù)據(jù)和索引,釋放磁盤空間比deleteMany()效率高db.dropDatabase()刪除數(shù)據(jù)庫,釋放磁盤空間/ 刪除集合db.drop()/ 刪除數(shù)據(jù)庫db.dropDatabase()讀取文檔find()返回cursor字符類型,可以

6、使用不等于$exists $type $regex 等find()/ 返回集合內(nèi)所有行數(shù)據(jù)db.find()/ 返回符合條件的文檔db.find(name:test1,age:18)/ 按條件,且返回指定的字段db.find(name:test1,age:18,_id:0,name:1)/ 返回表內(nèi)所有行數(shù)據(jù)SELECT * FROM;/ 返回符合條件的行SELECT * FROM WHERENAME=test1 AND AGE=18;/ 按條件,且返回指定的字段SELECT name FROM WHERENAME=test1 AND AGE=18;查詢數(shù)組/ 嵌套查詢filed1.field

7、2db.find(address.street:NANJING ROAD)/ 正則匹配 db.find(name: /test/)/ 2表關(guān)聯(lián)查詢SELECT * FROM A, INNER JOIN B ONA.STREETID=B.ID WHEREB.STREETNAME = NANJING ROAD/ 模糊查詢SELECT * FROMWHEREname LIKE “test%”;游標(biāo)操作/ 查詢記錄數(shù)db.find( ).count( )/ 查詢結(jié)果排序db.find( ).sort( : 1)/ 忽略100條db.find( ).skip(100)/ 只返回10條db.find( )

8、.limit(10)/ 過濾重復(fù)值db.distinct(“field”)查詢操作比較查詢操作操作解釋$lt小于$lte小于等于$gt大于$gte大于等于$ne不等于$in包含$nin不包含/ IMDB等分大于等于7db.movies.find( imdb_rating : $gte : 7 )/ 影片分類不屬于家庭類的db.movies.find( category : $ne : family )/ 電影名包含蝙蝠俠或哥斯拉db.movies.find( title : $in : Batman, Godzilla )/ 電影名不包含蝙蝠俠或哥斯拉db.movies.find( title

9、 : $nin : Batman, Godzilla 邏輯查詢操作操作解釋$or或者$not不$nor都不$and并且/ 科幻類或者IMDB大于等于7分db.movies.find( $or : category : sci-fi , imdb_rating : $gte : 7 )/科幻類且IMDB大于等于8分;或家庭類且IMDB大于等于7分db.movies.find( $or : category : sci-fi, imdb_rating : $gte : 8 , category : family, imdb_rating : $gte : 7 )元素查詢操作操作解釋$exists存

10、在$type數(shù)據(jù)類型/ budget字段存在db.movies.find( budget : $exists : true )/ type 1 or alias doubledb.movies.find( budget : $type : 1 )db.movies.find( budget: $type: double)/ type 3 or alias object (embedded document)db.movies.find( budget : $type : 3 )db.movies.find( budget: $type: object)/ type string matchin

11、g array elementsdb.movies.find( category: $type: 2)db.movies.find( category: $type: string)數(shù)組查詢操作操作解釋$all完全匹配$size數(shù)組大小$elemMatch元素匹配/ 類型是科幻和動(dòng)作類的db.movies.find( category : $all : sci-fi, action )/包含3種類型的電影db.movies.find( category : $size : 3 )/數(shù)組內(nèi)的元素滿足城市和國家條件db.movies.find( filming_locations : $elemM

12、atch : city : Florence, country : Italy )更新操作replaceOne()db.movies.insertOne( title: Batman ) db.movies.find()db.movies.replaceOne( title : “Batman” , imdb_rating : 7.7 )/title被刪除db.movies.find()db.movies.replaceOne( imdb_rating: 7.7 , title: Batman, imdb_rating: 7.7 ) db.movies.find()db.movies.repl

13、aceOne( , title: Batman ) db.movies.find() / 回到最初狀態(tài)db.movies.replaceOne( , _id : ObjectId() )/錯(cuò)誤,_id不能改變updateOne()/updateMany()db.movies.insertMany( title : Batman, category : action, adventure , imdb_rating : 7.6, budget : 35 , title : Godzilla, category : action, adventure, sci-fi , imdb_rating :

14、 6.6 , title : Home Alone, category : family, comedy , imdb_rating : 7.4 )db.movies.updateOne( “title” : “Batman” , $set : “imdb_rating” : 7.8 ) / IMDB改為7.8db.movies.updateOne( “title” : “Godzilla” , $set : “budget” : 1 ) / 增加budgetdb.movies.updateOne( “title” : “Home Alone” , $set : “budget” : 15,

15、“imdb_rating” : 5.5 ) / 修改IMDB,增加budgetdb.movies.updateOne( “title” : “Home Alone” , $unset: “budget”:1) / 刪除budgetdb.movies.updateMany( , $inc: “imdb_rating” : 2 ) / 更新所有文檔update操作操作解釋$inc自動(dòng)增加$mul乘$rename重命名字段$set更新字段$unset刪除字段$min修改前后對比, 改為較小的值$max修改前后對比, 改為較大的值$currentDate字段設(shè)為當(dāng)前 時(shí)間db.movies.updat

16、eOne( title: Batman , $inc: imdb_rating : 2 ) db.movies.updateOne( title: Home Alone , $inc: budget : 5 ) db.movies.updateOne( title: Batman , $mul: imdb_rating : 4 ) db.movies.updateOne( title: Batman , $rename: budget: estimated_budget ) db.movies.updateOne( title: Home Alone , $min: budget: 5 ) d

17、b.movies.updateOne( title: Home Alone , $currentDate : last_updated: $type: timestamp )/ increment movie rating by 1db.movie_mentions.updateOne( title: Batman , $inc: imdb_rating : 1 )數(shù)組元素更新操作解釋$push追加元素到數(shù) 組最后$pop刪除數(shù)組最后 的元素$pull刪除數(shù)組內(nèi)所 有符合條件的 元素$pullAll刪除數(shù)組里所 有匹配的值$addToSet追加不存在的 數(shù)組元素$占位符db.movies.up

18、dateOne( “title” : “Batman” , $push : “category” : “superhero” )db.movies.updateOne( “title” : “Batman” , $pop : “category” : 1 )db.movies.updateOne( “title” : “Batman” , $pull : “category” : “action” ) db.movies.updateOne( “title” : “Batman” , $pullAll : “category” : “villain”, “comic- based” )db.movies.updateOne( “title” : “Batman” , $addToSet : “category” : “action” )占位符$/將 “action”改成action-adventuredb.movies.updateMany( category: action, , $set: category.$ : action-adventure ) db.movies.find()/使用$和arrayFilters

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論