mongoDB非关系型数据库
生活随笔
收集整理的這篇文章主要介紹了
mongoDB非关系型数据库
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一句話解釋:MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。 由C++編寫。旨在為web程序提供可擴展性高的高性能的數(shù)據(jù)存儲解決方案
非關(guān)系數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫的區(qū)別是什么?
- 實質(zhì):非關(guān)系型數(shù)據(jù)庫的實質(zhì):非關(guān)系型數(shù)據(jù)庫產(chǎn)品是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的功能閹割版,通過減少用不到或很少用的功能,來大幅度提高產(chǎn)品性能。
- 價格:目前的非關(guān)系型數(shù)據(jù)庫基本都是免費的,而比較有名氣的關(guān)系型數(shù)據(jù)庫都是收費的,比如:Oracle、DB2、MSSQL。MySql雖然是免費的,但是處理大型數(shù)據(jù)還是要提前作很多工作的。
- 功能:實際開發(fā)中,很多業(yè)務(wù)需求,其實并不需要完整的關(guān)系型數(shù)據(jù)庫功能,非關(guān)系型數(shù)據(jù)庫的功能就足夠使用了。這種情況下,使用性能更高、成本更低的非關(guān)系型數(shù)據(jù)庫當(dāng)然是更明智的選擇。
概念性的區(qū)別如下表所示:
了解關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的區(qū)別后,需要有一點的取舍,比較復(fù)雜和大型的項目不建議使用非關(guān)系型數(shù)據(jù)庫,但是如果你想作個博客,CMS系統(tǒng)這類業(yè)務(wù)邏輯不復(fù)雜的程序,MongoDB是完全可以勝任的。
mongoDB的操作語句:
查看數(shù)據(jù)庫列表 $ Show dbs ? 檢查數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)庫 ? ?$ use 數(shù)據(jù)庫名稱 創(chuàng)建集合 ? ? $ db.createCollection(“集合名”) ? // 集合 === 表 >{ok:1} 查看集合(一定先進入對應(yīng)數(shù)據(jù)庫再進行查看) $?db.getCollectionNames() >[‘集合名'] 插入數(shù)據(jù) ? ? $ db.集合名.insertOne(數(shù)據(jù)集合({}json形式的數(shù)據(jù))) // 文檔 === 列 >{ "acknowledged" : true, ? //是否插入成功 "insertedId" : ObjectId("5aab2aaa93468a71aec836ce”)//插入的id } 查看數(shù)據(jù) ? ?$?db.music.find() 查看數(shù)據(jù)庫中的數(shù)據(jù) >? { "_id" : ObjectId("5aab2aaa93468a71aec836ce"), "title" : "回娘家" } { "_id" : ObjectId("5aab2b5e93468a71aec836cf"),?"title" : "再見理想" } Help命令? db.help() ? //db下的指令 db.test.help(); // db.test 下的所有指令 db.test.find().help(); //db.test.find下的所有指令 ………強大的help指令 使用數(shù)據(jù)庫 use ?數(shù)據(jù)庫名 查詢數(shù)據(jù)陸 show dbs 查看當(dāng)前使用的數(shù)據(jù)庫 db/db.getName(); 顯示當(dāng)前的數(shù)據(jù)庫狀態(tài) db.stats(); 查看當(dāng)前db的版本 db.version(); 查看數(shù)據(jù)庫連接地址; db.getMongo() 刪除數(shù)據(jù)庫 db.dropDatabase()? tip:刪除當(dāng)前使用的數(shù)據(jù)庫。 集合(collection)操作 1.創(chuàng)建 createCollection(“collName”,{size:20,cappeu:true,max:10}) 2.得到指定名稱的集合? db.getCollection(“account”) 3.得到當(dāng)前db所有的集合; db.getCollectionNames() 4.顯示當(dāng)前db所有集合狀態(tài) db.printCollectionStats(); 5.刪除集合 db.COLLECTION_NAME.drop(); 集合數(shù)據(jù)操作(添加,修改,刪除)update | updateMany() 1.添加 insert([,…]|{key:value,...}) db.users.save({name:”zhangsan”,”age”:25,sex:true}) 2.修改 updata(條件({})) db.users.update({age:25},{$set:{name:”changeName”}},false,true) 相當(dāng)于sql語句的 ?update users set name = “changeName” where age = 25; db.users.update({name:”Lisi”},{$inc:{age:50}},false,true) 相當(dāng)于sql語句的 ?update users set age = age + 50 where name =“l(fā)isi” db.users.update({name:”Lisi”},{$inc:{age:50},$set:{name:’hoho’}},false,true) 相當(dāng)于sql語句的 : update users set age = age + 50 ,name = ‘hoho’ where name = “l(fā)isi" 3.刪除 db.users.remove({age:132}) db.users.delete() db.users.deleteOne() db.users.deleteMany() 豆瓣api?api.douban.com/v12/movie/top369 豆瓣數(shù)據(jù)的操作: 獲取到豆瓣的數(shù)據(jù),然后將數(shù)據(jù)放入數(shù)據(jù)庫之中。? 查找對應(yīng)數(shù)據(jù); db.movie.find(條件,顯示內(nèi)容) db.movie.find({year:1994},{title:1,year:1,_id:0})//表示顯示 title1 和 year1 _id不顯示; 1.表示顯示 ?0.表示不顯示; 排序 根據(jù)評分排序: db.movie.find({},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1}) 條件判斷:$gt 大于; $lt 小于; $gte 大于等于 $lte 小于等于; db.movie.find({‘a(chǎn)rting.average’:$gt:9.5},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1}) 分類篩選: $in 包含 ?$nin 不包含 db.movie.find({genres:{$in:["犯罪","劇情"]}},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/fengch/p/8635591.html
總結(jié)
以上是生活随笔為你收集整理的mongoDB非关系型数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: $GLOBALS -- 变量
- 下一篇: 数据结构比较型排序算法分析及选择