nvm實現node.js各個版本的切換


Mongodb數據庫

[if !supportLists]1.?[endif]課程介

[if !supportLists]??[endif]數據庫概述(了解)

[if !supportLists]??[endif]NoSQL和MongoDB簡介(了解)

[if !supportLists]??[endif]MongoDB安裝(掌握)

[if !supportLists]??[endif]MongoDB基本操作(掌握)

[if !supportLists]2.?[endif]數據庫概述

[if !supportLists]2.1.?[endif]引言




以上圖片是什么?

答案:車庫


車庫用來做什么?

答案:停放車輛,換句話說:存儲汽車。


數據庫用來做什么?

答案:存儲數據。


思考1:老師讓你匯總下本周遲到人數,你如何記錄?

數據量比較小,用一個excel表格就存放遲到人的名單。


思考2:2016年四川高考成績如何存儲?

數據量大了,顯然excel不能滿足,就需要存儲在數據庫里面。

不僅如此,很多企業都有自己的數據需要管理,都需要使用數據庫。

[if !supportLists]2.2.?[endif]什么是數據庫

數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生于距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以后,數據庫技術得到了更加快速的發展,應用得更加廣泛。主要用它進行管理各種系統的數據,作為科學研究和決策的重要技術手段。


常見的數據庫有哪些:


下圖是2015年數據庫排行



關系型數據庫:Access ?mySql SqlServer oracle ?db2等。


非關系型數據庫:?MongoDB,Redis,HBase,CouchDB等。









文檔型數據這個名字中,“文檔”兩個字很容易誤解。其實這個文檔就是bson 。bson 是 json 的超集,比如 json 中沒法儲存二進制類型,而 bson 拓展了類型,提供了二進制支持。mongodb 中存儲的一條條記錄都可以用 bson 來表示。所以你也可以認為,mongodb 是個存 bson 數據的數據庫。



數據庫是一門學科,專門做數據庫運維的人叫Database Administrator,簡稱DBA,有的DBA指深入專研一種數據庫。


思考:在這兩天的學習過程中,對于我們web前端學科的同學來說,我們如何去學它,掌握到什么程度?


我們對大家的要求:


[if !supportLists]??[endif]了解數據庫發展歷史。(面試用)

[if !supportLists]??[endif]會安裝MongoDB和配置環境變量。

[if !supportLists]??[endif]學會常用的命令。

[if !supportLists]??[endif]學會用后端語言進行MongoDB的CRUD操作。

[if !supportLists]2.3.?[endif]NoSQL簡介

NoSQL,指的是非關系型的數據庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統的關系型數據庫的數據庫管理系統的統稱。


NoSQL用于超大規模數據的存儲。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數據)。這些類型的數據存儲不需要固定的模式,無需多余操作就可以橫向擴展。

[if !supportLists]2.4.?[endif]MongoDB簡介

MongoDB是一個基于分布式文件存儲的數據庫。由C++語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。


MongoDB是非關系型數據庫當中功能最豐富,最像關系型數據庫的。


隨著大數據的不斷發展,非關系型數據庫已經變得越來越重要,相關的產品也都得到了飛速發展。而其中MongoDB更是佼佼者,作為高性能開源文檔數據庫,MongoDB以敏捷、可擴展和對企業應用友好而著稱,因其操作簡單、完全免費、源碼公開等特點,受到了IT從業人員的青睞,并被廣泛部署于實際的生產環境中。


使用MongoDB的公司包括:BAT、360、Foursquare、Craiglist,、迪士尼、SAP、Intuit、EA等。


很多大公司在用,并且越來越多的公司也要用,我們以后就可能接觸到相關的項目,雖然數據庫是后端人員做的事情,但是做為高級前端,有必要對它有所了解,才更好的和后端開發人員合作,做到知己知彼,百戰不殆。


[if !supportLists]2.5.?[endif]MongoDB優點

它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:

[if !supportLists]·?[endif]面向集合存儲,易存儲對象類型的數據。

[if !supportLists]·?[endif]模式自由。

[if !supportLists]·?[endif]支持動態查詢。

[if !supportLists]·?[endif]支持完全索引,包含內部對象。

[if !supportLists]·?[endif]支持查詢。

[if !supportLists]·?[endif]支持復制和故障恢復。

[if !supportLists]·?[endif]使用高效的二進制數據存儲,包括大型對象(如視頻等)。

[if !supportLists]·?[endif]自動處理碎片,以支持云計算層次的擴展性

[if !supportLists]·?[endif]支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。

[if !supportLists]·?[endif]文件存儲格式為BSON(一種JSON的擴展)

[if !supportLists]2.6.?[endif]BSON

BSON是一種類似json的二進制形式的存儲格式,簡稱Binary JSON,它和JSON一樣,支持內嵌的文檔對象數組對象,但是BSON有JSON沒有的一些數據類型,如Date和BinData類型。


????BSON可以做為網絡數據交換的一種存儲形式,這個有點類似于Google的Protocol Buffer,但是BSON是一種schema-less的存儲形式,它的優點是靈活性高,但它的缺點是空間利用率不是很理想。

BSON有三個特點:輕量性、可遍歷性、高效性。


后面大家會看到我們存在數據庫里面的全部都是bson格式的數據。

[if !supportLists]2.7.?[endif]非關系型數據庫與關系型數據庫區別

非關系型數據庫的優勢:


1.性能

NOSQL是基于鍵值對的,可以想象成表中的主鍵和值的對應關系,而且不需要經過SQL層的解析,所以性能非常高。


2.可擴展性

同樣也是因為基于鍵值對,數據之間沒有耦合性,所以非常容易水平擴展。


關系型數據庫的優勢:


1.復雜查詢

可以用SQL語句方便的在多個表之間做非常復雜的數據查詢。


2.事務支持

使得對于安全性能很高的數據訪問要求得以實現。


總結:


[if !supportLists]??[endif]數據庫功能是用來存儲數據的。

[if !supportLists]??[endif]數據庫分為關系系數據庫和非關系型數據庫(nosql)

[if !supportLists]??[endif]關系型數據庫是由表和表之間的關系組成的,nosql是由集合組成的,集合下面是很多的文檔。

[if !supportLists]??[endif]非關系型數據庫文件存儲格式為BSON(一種JSON的擴展)。



[if !supportLists]3.?[endif]準備工作

[if !supportLists]3.1.?[endif]MongoDB下載與安裝

MongoDB官網地址:

https://www.mongodb.com/


MongoDB下載地址:

https://www.mongodb.com/download-center#community


MongoDB for Windows 64-bit適合 64 位的 Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系統。


MongoDB for Windows 32-bit適合 32 位的 Window 系統及最新的 Windows Vista。 32 位系統上 MongoDB 的數據庫最大為 2GB。


選擇適合自己系統的版本進行下載:





根據你的系統下載32位或 64 位的 .msi 文件,下載后雙擊該文件,按操作提示安裝即可。


安裝過程如下:




勾選同意協議:



選擇完整安裝:


你可以通過點擊"Custom(自定義)" 按鈕來設置你的安裝目錄




點擊install:







看到上面的界面表示已經安裝完成。


安裝完成后效果:


[if !supportLists]3.2.?[endif]MongoVUE安裝

MongoVUE可以提高你使用MongoDB的幸福指數,他是MongoDB的可視化界面管理工具。

雙擊Installer.msi安裝,默認安裝在C:\Program Files (x86)\MongoVUE









第二步:使用破解版的MongoVUE.exe覆蓋安裝目錄下的MongoVUE.exe。


[if !supportLists]4.?[endif]MongoDB的安裝(重點)

[if !supportLists]4.1.?[endif]基本操作

對mongodb數據庫的操作是通過執行命令來完成的,我的電腦里面這些命令安裝在:

C:\Program Files\MongoDB\Server\3.2\bin



要執行這些命令,需要以管理員身份運行cmd。

打開開始菜單,找到命令提示符,在上面點擊右鍵,選擇以管理員身份運行。



要想執行mongodb的命令,需要cd到他的安裝目錄下面的bin文件夾下。


為了在dos窗口的任何目錄下都能執行mongo的命令,需要先設置環境變量,因為計算機在執行命令的時候會在環境變量中找對應的命令。


不同的操作系統設置環境變量的步驟大同小異。


Win10操作系統下設置環境變量如下圖。


[if !supportLists]4.2.?[endif]設置環境變量









Win7下設置環境變量:

第一步:我的電腦上點擊右鍵,選擇屬性



第二步:找到并打開“高級系統配置”。

在接下來的頁面中點擊“高級系統配置”,打開“系統屬性”窗口。





第三步:找到“環境變量”按鈕并點擊。?



第四部:在環境變量窗口中一般有兩個變量,一個是你當前所使用的用戶獨有的環境變量,另一個是所有用戶都可以訪問的系統變量。其實如果在你的電腦上你只使用一個用戶的話,那么不管你修改的用戶的環境變量還是系統變量,效果都是一樣的。為了以防未來會新建其他用戶,那么我建議你修改系統變量而不是某個用戶獨有的環境變量。






在變量值最后加上分號;C:\Program Files\MongoDB\Server\3.2\bin

然后保存。

[if !supportLists]4.3.?[endif]創建文件夾

我們之前安裝的其實是數據服務器,通過數據庫服務器可以建立很多個數據庫,我們打算把新建的數據庫放哪里呢?需要指定一個位置。


[if !supportLists]1、[endif]在d盤建立一個文件夾mongodb,并且建立子目錄db和log.

[if !supportLists]2、[endif]在log目錄下建立一個文件MongoDB.log ,后綴為.log.

d:\mongodb\db、d:\mongodb\log,?分別用來存放數據庫文件和數據庫日志文件.

3、把mongodb文件夾的只讀屬性去掉。



[if !supportLists]4.4.?[endif]啟動MongoDB



以管理員身份運行cmd.exe進入dos命令界面,執行下列命令

>?mongod ?--storageEngine mmapv1?--dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log"?






執行后,就掛起了,需要另外開命令窗口測試是否啟動成功。

[if !supportLists]4.5.?[endif]測試連接

原來的cmd窗口不關閉,以管理員身份再開一個cmd窗口,輸入mongo或者mongo.exe,出現如下信息說明測試通過,此時我們已經進入了test這個數據庫。

從上圖可以看出,我們進入了mongodb的shell

輸入exit或者ctrl+C可退出。

[if !supportLists]4.6.?[endif]將MongoDB安裝為windows服務重點中的重點)

當mongod.exe被關閉時,mongo.exe 就無法連接到數據庫了,因此每次想使用mongodb數據庫都要開啟mongod.exe程序,所以比較麻煩,此時我們可以將MongoDB安裝為windows服務

以管理員身份運行cmd,進入bin文件夾,執行下列命令

mongod ?--storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB"


這里MongoDB.log就是開始建立的日志文件,--serviceName "MongoDB" 服務名為MongoDB


接著啟動mongodb服務

?? >?NET START MongoDB


  打開任務管理器,可以看到進程已經啟動。

?? 再次測試連接

? > mongo


[if !supportLists]4.7.?[endif]關閉服務和刪除進程

先ctrl+c

關閉服務:net stop MongoDB?


[if !supportLists]5.?[endif]MongoDB基礎使用

[if !supportLists]5.1.?[endif]常用的命令重點)

? > Help查看幫助



顯示數據庫列表?> show dbs ? ????

創建數據庫>use dbname ?

如果數據庫不存在,則創建數據庫dbname,否則切換到指定數據庫dbname。創建的數據庫并不在數據庫的列表中,要顯示它,我們需要向數據庫dbname插入一些數據

MongoDB 中默認的數據庫為 test,如果你沒有創建新的數據庫,集合將存放在 test 數據庫中。

顯示數據庫中的集合?show collections????

[if !supportLists]5.1.1.?[endif]增加數據(重點中的重點)

db.web.save({"name":"老李"}) ? ?創建了名為web的集合,并新增了一條{"name":"老李"}?的數據

db.web.insert({"name":"ghost", "age":10}) ? ?在web集合中插入一條新數據,如果沒有web這個集合,mongodb會自動創建

save()和insert()也存在著些許區別:若新增的數據主鍵已經存在,insert()會不做操作并提示錯誤,而save() 則更改原來的內容為新內容。

_id是主鍵,主鍵是每條數據的唯一標識,不能重復,就像身份證是每個人唯一的編號一樣。

存在數據:{ _id : ObjectId("57e8d34b4764fb71d0a89caa"), " name " : "老李"},_id是主鍵

insert({ _id : ObjectId("57e8d34b4764fb71d0a89caa"), " name " : " 老王?" }) ? ?會提示錯誤


save(ObjectId("57e8d34b4764fb71d0a89caa"), " name " : " 老王?" })?會把 “老李”改為“?老王”,有update的作用。


[if !supportLists]5.1.2.?[endif]刪除數據(重點中的重點)

1、刪除文檔

2、刪除集合

3、刪除數據庫

[if !supportLists]·?[endif]db.users.remove({}) ? ?刪除users集合下所有數據

[if !supportLists]·?[endif]db.users.remove({"name": "lecaf"}) ? 刪除users集合下name=”lecaf”的數據

[if !supportLists]·?[endif]db.users.drop()或db.runCommand({"drop":"users"}) ? ?刪除集合users

[if !supportLists]·?[endif]db.runCommand({"dropDatabase": 1}) ???刪除當前數據庫,注意此處的1沒加雙引號。

[if !supportLists]5.1.3.?[endif]查找數據(重點中的重點)

[if !supportLists]·?[endif]db.users.find() ? ?查找users集合中所有數據

[if !supportLists]·?[endif]db.users.findOne() ? ?查找users集合中的第一條數據

[if !supportLists]·?[endif]db.users.find().pretty() 格式化查詢到的數據


[if !supportLists]5.1.4.?[endif]修改數據(重點中的重點)

[if !supportLists]·?[endif]db.web.update({"name":"a1"}, {"age":10}) ? ?修改name=a1的數據為sex=1,第一個參數是查找條件,第二個參數是修改內容主鍵不能修改,如圖


[if !supportLists]5.2.?[endif]MongoDB高級命令(重點)

[if !supportLists]5.2.1.?[endif]條件查找

學習用命令的意義在于:我們做系統的時候,后端人員需要給前端開發人員提供數據,如果后端人員用可視化工具,只是他自己眼睛能看到,但是如果要把這些數據提供給前端,他需要用代碼去查數據庫,把查詢的結果返回給前端。


為此:老師給大家整理了下以下這些常見的查詢例子,如果你以后忘記了,就翻出來看看。


提前做了一個歌手的json數據,我們可以把他導入到數據庫,練習查找命令。




語法1:db.collection.find({ "key" : value })查找key=value的數據.

例1:查找女歌星。

思路:查找sex=”女”的歌星。

具體命令:



語法2: db.collection.find({ "key" :?{ $gt: value }?}) ? ?key > value

例2:查找年齡大于53的歌星。



語法3:db.collection.find({ "key" :?{?$lt: value }?}) ? ?key < value

例3:查詢年齡小于35歲的歌星。


語法4:db.collection.find({ "key" :?{ $gte: value }?}) ? ?key >= value

例4:查詢成績大于等于95的歌星。


語法5:db.collection.find({ "key" :?{?$lte: value }?}) ? ?key <= value

例5:查詢年齡在小于等于32歲的歌星。


語法6:db.collection.find({ "key" :?{ $gt: value1 , $lt: value2?}?}) ? value1 < key <value2

例6:查找年齡在30-40歲之間的歌星。



語法7:db.collection.find({ "key" :?{?$ne: value }?}) ? ?key <> value

例7:查詢外國歌手。

分析:條件為 country不等于”中國”


語法8:db.collection.find({ "key"?: { $mod : [ 10 , 1 ] } })取模運算,條件相當于key % 10 == 1 即key除以10余數為1的

例8:查詢成績為5 、15、25、。。。。95的歌星。


語法9:db.collection.find({?"key"?: { $in: [ 1, 2, 3 ] } })屬于,條件相當于key等于[ 1, 2, 3 ]中任何一個.

例9:查詢序號(num)為3或者6或者9的歌星。


語法10:db.collection.find({?"key"?: { $nin: [ 1, 2, 3 ] } })不屬于,條件相當于key的值不屬于[ 1, 2, 3 ]中任何一個。

例10:查詢國籍不為美國和韓國的歌手。


語法11:db.collection.find({ "key"?: { $size: 1 } }) ? ?$size數量、尺寸,條件相當于key對應的值的數量是1(值必須是數組)

這個有點難理解,通過例子理解容易些:

每個歌星都有代表作,并且代表作是數組。

例11:查詢有3個代表作品的歌手。


語法12:db.collection.find({ "key"?: { $exists : true|false } }) ? ?

$exists字段存在,true返回存在字段key的數據,false返回不存在字段key的數據

例12-1:查詢包含tel字段的數據。

之前的數據字段都是一樣的,此時插入一條數據{"name":"test","tel":"15388889999"}

然后查詢:


例12-2:查詢不包含tel字段的數據


語法13:db.collection.find({ $or : [{a : 1}, {b : 2} ] }) ?

符合兩個條件中任意一個的數據。$or語法表示或的意思。(注意:MongoDB 1.5.3后版本可用),符合條件a=1的或者符合條件b=2的數據都會查詢出來。

例13:某個娛樂公司15個人,資料都在數據庫里面,某個活動必須要劉德華參加,另外需要團隊的全部女歌手配合演出,領導安排你幫忙打印歌手的資料。


db.collection.find({ "key.subkey" :value })內嵌對象中的值匹配,注意:"key.subkey"必須加引號。

例14:插入一條測試數據

db.singer.insert({"name":"test2",score:{"yy":80,"sx":79,"wy":95}})

此數據的score對應的值是一個對象。

例14:查詢語文成績為80的同學。


[if !supportLists]5.2.2.?[endif]排序

db.collection.find().sort({ "key1" : -1 ,"key2" : 1 })這里的1代表升序,-1代表降序

例1:對所有歌星安年齡排序。


例2:對所有歌星先按年齡降序排列,再按score字段降序排列。


[if !supportLists]5.2.3.?[endif]索引


索引通常能夠極大的提高查詢的效率,如果沒有索引,MongoDB在讀取數據時必須掃描集合中的每個文件并選取那些符合查詢條件的記錄。

這種掃描全集合的查詢效率是非常低的,特別在處理大量的數據時,查詢可以要花費幾十秒甚至幾分鐘,這對網站的性能是非常致命的。

索引是特殊的數據結構,索引存儲在一個易于遍歷讀取的數據集合中,索引是對數據庫表中一列或多列的值進行排序的一種結構


例如:我們查詢張三的時候db.singer.find({"name":"張三"})

如果沒有對name字段建立索引,數據庫在查詢的時候會掃描所有的數據,如果數據量小的時候,感覺不出來速度慢,當數據越來越多的時候,就會越來越慢。

這個時候如果給name建立一個索引,查詢速度就會加快。

MongoDB使用 ensureIndex() 方法來創建索引。


ensureIndex()方法基本語法格式如下所示:


>db.COLLECTION_NAME.ensureIndex({KEY:1})


對name字段建立一個索引如下:





可視化工具里面可以看到剛創建的索引:



語法中Key值為你要創建的索引字段,1為指定按升序創建索引,如果你想按降序來創建索引指定為-1即可。


實例

>db.col.ensureIndex({"title":1})>

ensureIndex()方法中你也可以設置使用多個字段創建索引(關系型數據庫中稱作復合索引)。


>?db.col.ensureIndex({"title":1,"description":-1})

[if !supportLists]5.2.4.?[endif]其他

db.collection.find().limit(5)控制返回結果數量,如果參數是0,則沒有約束,limit()將不起作用


db.collection.find().skip(5)控制返回結果跳過多少數量,如果參數是0,則當作沒有約束,skip()將不起作用,或者說跳過了0條

db.collection.find().skip(5).limit(5)可用來做分頁,跳過5條數據再取5條數據

db.collection.find().count() ? ?count()返回結果集的條數

db.collection.find().skip(5).limit(5).count(true)在加入skip()和limit()這兩個操作時,要獲得實際返回的結果數,需要一個參數true,否則返回的是符合查詢條件的結果總數


模糊查詢:

db.collection.find({"name":/ab/})


以上是常見的查詢,如果工作中遇到更加復雜的需求,可以通過查文檔來解決。

[if !supportLists]5.3.?[endif]使用可視化工具

[if !supportLists]5.3.1.?[endif]插入

1)右鍵點擊集合名-左鍵點擊InsertDocument?


2)在彈出的對話框里輸入Json格式的數據,點擊Insert完成插入。?

[if !supportLists]5.3.2.?[endif]查詢

1)選中要查詢的集合,點擊find;?

? 或點擊工具欄中的find;


2)查詢界面包括四個區域?


[if !supportLists]5.3.3.?[endif]刪除

選中要操作的集合,點擊Remove進入刪除面板,輸入要刪除數據的查詢條件,點擊Remove,在彈出的提示框中確認刪除即可。




[if !supportLists]5.3.4.?[endif]修改

選中要操作的集合,點擊Update進入修改面板;

左側輸入查詢條件,右側輸入要更新的字段名稱和值; 格式如:{$set:{"score":100}}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,415評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,104評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,884評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,647評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,130評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,366評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,887評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,737評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,174評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,586評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,827評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,608評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,914評論 2 372

推薦閱讀更多精彩內容