MongoDB簡(jiǎn)易教程

傳統(tǒng)數(shù)據(jù)庫(kù)中,我們要操作數(shù)據(jù)庫(kù)數(shù)據(jù)都要書(shū)寫(xiě)大量的sql語(yǔ)句覆享,而且在進(jìn)行無(wú)規(guī)則數(shù)據(jù)的存儲(chǔ)時(shí)佳遂,傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)建表時(shí)對(duì)不同字段的處理也顯得有些乏力,mongo應(yīng)運(yùn)而生防嗡,而且ajax技術(shù)的廣泛應(yīng)用惹苗,json格式的廣泛接受纵诞,也使得mongo更貼近開(kāi)發(fā)人員也殖。

mongo簡(jiǎn)介及應(yīng)用場(chǎng)景

MongoDB是一個(gè)面向文檔的非關(guān)系型數(shù)據(jù)庫(kù)(NoSQL)徘熔,使用json格式存儲(chǔ)荚藻。Mongo DB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷?OO思想),在Mongo DB中 每一條記錄都是一個(gè)Document對(duì)象斋竞。Mongo DB最大的優(yōu)勢(shì)在于所有的數(shù)據(jù)持久操作都無(wú)需開(kāi)發(fā)人員手動(dòng)編寫(xiě)SQL語(yǔ)句,直接調(diào)用方法就可以輕松的實(shí)現(xiàn)CRUD操作章姓。

mongo能應(yīng)用在如下場(chǎng)景:

存儲(chǔ)大尺寸拧抖、低價(jià)值的數(shù)據(jù)json及對(duì)象類(lèi)型數(shù)據(jù)網(wǎng)站緩存數(shù)據(jù)評(píng)論祟峦、子評(píng)論類(lèi)有明顯從屬關(guān)系數(shù)據(jù)多服務(wù)器數(shù)據(jù),其內(nèi)置的MapReduce很容易現(xiàn)實(shí)全局遍歷徙鱼。

主要功能特性:

  1. 文件存儲(chǔ)格式BSON(一種json的擴(kuò)展)
  2. 模式自由 數(shù)據(jù)格式不受限了表的結(jié)構(gòu)
  3. 支持動(dòng)態(tài)查詢(xún)
  4. 支持完全索引
  5. 支持復(fù)制(其主從復(fù)制)和故障恢復(fù)
  6. 使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ)宅楞,包括大型對(duì)象
  7. 自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展袱吆。
  8. 支持Java厌衙、Ruby、Python绞绒、C++婶希、PHP等多種語(yǔ)言
  9. 內(nèi)部支持Javascript

MongoDB的優(yōu)勢(shì)

1.查詢(xún)速度快
2.高并發(fā)∨詈猓可以達(dá)到2萬(wàn)個(gè)并發(fā)喻杈。
3.高容量彤枢。支持10TB意思的數(shù)據(jù)量 MongoDB

使用場(chǎng)景

1.網(wǎng)站數(shù)據(jù)
2.緩存
3.大尺寸、低價(jià)值的數(shù)據(jù)
4.高伸縮的場(chǎng)景
5.用于對(duì)象以及Json數(shù)據(jù)存儲(chǔ)

mongoDB是介于nosql和sql之間的數(shù)據(jù)庫(kù)筒饰。

NoSQL 數(shù)據(jù)庫(kù)分類(lèi)

類(lèi)型 部分代表 特點(diǎn)
列存儲(chǔ) HbaseCassandraHypertable 顧名思義缴啡,是按列存儲(chǔ)數(shù)據(jù)的。最大的特點(diǎn)是方便存儲(chǔ)結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)瓷们,方便做數(shù)據(jù)壓縮业栅,對(duì)針對(duì)某一列或者某幾列的查詢(xún)有非常大的IO優(yōu)勢(shì)。
文檔存儲(chǔ) MongoDBCouchDB 文檔存儲(chǔ)一般用類(lèi)似json的格式存儲(chǔ)谬晕,存儲(chǔ)的內(nèi)容是文檔型的碘裕。這樣也就有有機(jī)會(huì)對(duì)某些字段建立索引,實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的某些功能攒钳。
key-value存儲(chǔ) Tokyo Cabinet / TyrantBerkeley DBMemcacheDBRedis 可以通過(guò)key快速查詢(xún)到其value帮孔。一般來(lái)說(shuō),存儲(chǔ)不管value的格式不撑,照單全收你弦。(Redis包含了其他功能)
圖存儲(chǔ) Neo4JFlockDB 圖形關(guān)系的最佳存儲(chǔ)。使用傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)來(lái)解決的話性能低下燎孟,而且設(shè)計(jì)使用不方便禽作。
對(duì)象存儲(chǔ) db4oVersant 通過(guò)類(lèi)似面向?qū)ο笳Z(yǔ)言的語(yǔ)法操作數(shù)據(jù)庫(kù),通過(guò)對(duì)象的方式存取數(shù)據(jù)揩页。
xml數(shù)據(jù)庫(kù) Berkeley DB XMLBaseX 高效的存儲(chǔ)XML數(shù)據(jù)旷偿,并支持XML的內(nèi)部查詢(xún)語(yǔ)法,比如XQuery,Xpath爆侣。

MongoDB與其他數(shù)據(jù)庫(kù)區(qū)別

對(duì)比項(xiàng) MONGODB MYSQL萍程、ORACLE
數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)(dataBase) 數(shù)據(jù)庫(kù)(dataBase,schema)
集合(collections) 二維表(table)
表中的一行數(shù)據(jù) 文檔(document) 一行記錄(record)
表字段 鍵(key) 列(column)
主外鍵 無(wú) primary key,Forigen key
靈活度擴(kuò)展項(xiàng) 極高 差(結(jié)構(gòu)化數(shù)據(jù))

安裝和使用mongodb

我們?cè)诠倬W(wǎng) https://www.mongodb.org/ 上可以下載到其最新穩(wěn)定版本 ,mongo是官方已經(jīng)編譯好的兔仰,解壓后即可使用其命令都在bin目錄下茫负。

使用前首先配置mongo.conf文件

port=xxxxx         //代表端口號(hào),如果不指定則默認(rèn)為 27017 
dbpath=/usr/local/mongodb/db    //數(shù)據(jù)庫(kù)路徑
logpath=/usr/local/mongodb/logs/mongodb.log //日志路徑
logappend=true        //日志文件自動(dòng)累加乎赴,而不是覆蓋
fork=ture         //以守護(hù)進(jìn)程方式創(chuàng)建

數(shù)據(jù)庫(kù)和數(shù)據(jù)表都可以直接創(chuàng)建忍法,即不用切換,直接使用榕吼,使用時(shí)即創(chuàng)建饿序,mongo里還可以直接寫(xiě)js腳本,可直接運(yùn)行羹蚣,mongo中如果不指定_id字段原探,mongo會(huì)自動(dòng)添加一個(gè)。

mongo的各種命令

mongo的命令是其精髓,這些十分復(fù)雜的命令集合在一塊咽弦,使得mongo的查詢(xún)變得絢麗而高效徒蟆。mongo內(nèi)的每個(gè)表稱(chēng)作一個(gè)collection(集合),使用命令類(lèi)似于MySQL型型,切換到數(shù)據(jù)庫(kù)內(nèi)直接對(duì)每一個(gè)collection操作段审。其命令由方法(func())、查詢(xún)體(寫(xiě)在{}里)和操作符(由$開(kāi)頭)組成输莺。

基本命令

show dbs        //查看數(shù)據(jù)庫(kù)
use dbname        //切換到數(shù)據(jù)庫(kù)
db.createCollection('collection')  //創(chuàng)建數(shù)據(jù)表
db.collection.drop()     //刪除數(shù)據(jù)表
db.dropDatabase()      //刪數(shù)據(jù)庫(kù)
db.collection.insert({data})   //插入數(shù)據(jù)
db.collection.find()     //顯示數(shù)據(jù)表內(nèi)全部?jī)?nèi)容

查詢(xún)體

{key.attr.attr:value}          //普通式
{key:{$ne|$gt|$gte|$lt|$lte|$in|$nin|$all:value}}   //key滿(mǎn)足 $oper value的值
{$or|$and|$not|$nor:[{key1:{$gt:value}},{key2:{$ne:value}}]} //用$oper同時(shí)限定key1,key2的條件
{key:{$mod{8,2}}}           //取出key對(duì)8取余為2的值。
{key:{$exist:1}}           //取出key列存在的值裸诽。
{key:{$type:String|Double|Array|Date|Object|Boolean|......}}//查詢(xún)key類(lèi)型為type的列
{key:{$regex:/pattern/}}         //通過(guò)正則查詢(xún)嫂用,效率較低
{$where:'this.attr.express.....'}       //直接用where語(yǔ)句,二進(jìn)制轉(zhuǎn)為JS運(yùn)算丈冬,較慢

find()方法增強(qiáng)

db.collection.find(query,{要取出的列:1,不需要的列:0})  
db.collection.find(query).skip(跳過(guò)的行數(shù)).limit(限制信息條數(shù));
db.collection.find(query).explain()   //與MYSQL的解釋語(yǔ)句一樣嘱函。
db.collection.remove(query,[justone]) //如不指定query,全部刪除;[justone]默認(rèn)為false意思是查詢(xún)到多個(gè)埂蕊,但只刪一個(gè)往弓。

update語(yǔ)句

db.collection.update(query,{key:newvalue}) //注意:新值會(huì)覆蓋舊值,即數(shù)據(jù)只剩下語(yǔ)句中定義的key
db.collection.update(query,
{
 $set:{key:newvalue},
 $unset:{key:value},
 $rename:{key:value},
 $inc:{key:value},
 ......
},
{
 multi:true,  //改變所有符合條件的,默認(rèn)為false
 upsert:true  //沒(méi)有的話剛添加蓄氧,默認(rèn)為false
}
)

游標(biāo)

var cursorName=db.collection.fund(query,...)[.skip(num).limit(num)] //創(chuàng)建游標(biāo)
cursorName.hasNext()            //判斷是否有下一個(gè)
printjson(cursorName.next())          //輸出游標(biāo)的下一個(gè)指向值
cursorName.forEach(function(Obj){process Obj})      //遍歷操作游標(biāo)

索引

db.collection.getIndexes()     //查看索引
db.collection.ensureIndex({key:1/-1[,key.attr:1/-1]},{unique:1(是否唯一)},{sparse:1(是否非空)})// 添加正序/倒序索引
db.collection.dropIndex({key:1/2})   //刪除索引
db.collection.reIndex()   //重建用了很多出現(xiàn)雜亂的索引

MapReduce

MapReduce是mongo中內(nèi)置的一個(gè)非常強(qiáng)大的遍歷操作工具函似,使用它需要實(shí)現(xiàn)它的map和reduce兩個(gè)函數(shù)

db.runCommand(
 {
 mapReduce: collection,    //要操作的數(shù)據(jù)表
 map: function(){emit(key1,key2)}, //對(duì)key1和key2進(jìn)行數(shù)據(jù)映射
 reduce: function(key,value){},  //對(duì)key值和數(shù)據(jù)組value進(jìn)行操作
 out: <output>,
 query: <document>,
 sort: <document>,
 limit: <number>,
 finalize: <function>,
 scope: <document>,
 jsMode: <boolean>,
 verbose: <boolean>
 }
)

更多更詳細(xì)的命令可以在mongo的中文社區(qū) http://docs.mongoing.com/manual-zh/ 找到。

mongo的用戶(hù)喉童、數(shù)據(jù)導(dǎo)入導(dǎo)出和集群

用戶(hù)管理

MongoDB默認(rèn)不開(kāi)啟授權(quán)撇寞。可以在開(kāi)啟服務(wù)器時(shí)添加 --auth 或者 --keyFile 選項(xiàng)開(kāi)啟授權(quán)堂氯。使用配置文件的話蔑担,使用 security.authorization 或 security.keyFile 設(shè)置。

MongoDB提供 自帶角色, 每一個(gè)角色都為一種常見(jiàn)用例提供一個(gè)明確的作用咽白。例如 read, readWrite, dbAdmin, 和 root 等角色啤握。我們通過(guò)創(chuàng)建用戶(hù),創(chuàng)建角色晶框,給用戶(hù)分配/回收不同的角色來(lái)進(jìn)行用戶(hù)管理排抬。

添加角色時(shí)要先在admin數(shù)據(jù)庫(kù)中添加一個(gè)管理員角色,然后使用管理員角色在每個(gè)庫(kù)添加不同的角色授段。

use admin;(切換到admin數(shù)據(jù)庫(kù)畜埋,對(duì)此庫(kù)操作)
db.createUser(
 {
 user: "username",
 pwd: "password",
 roles:
 [
 {
 role: "userAdminAnyDatabase",
 db: "admin"
 }
 ]
 }
)
use database;
db.auth('username','passwd');用超級(jí)管理員用戶(hù)登陸后,整個(gè)mongo數(shù)據(jù)庫(kù)皆可存取畴蒲。

數(shù)據(jù)導(dǎo)入導(dǎo)出

我們使用mongo自帶的工具進(jìn)行導(dǎo)入導(dǎo)出悠鞍,在mongo/bin目錄下,最好導(dǎo)出csv格式,便于數(shù)據(jù)交換咖祭。

./mongoexport -d dataname -c tablename -f key1,key2 -q 'query' -o ainname --csv
//導(dǎo)出數(shù)據(jù)掩宜,默認(rèn)為json格式
./mongoimport -d dataname -c tablename --type json --file ./path 
//導(dǎo)入數(shù)據(jù),默認(rèn)為json格式

mongo數(shù)據(jù)庫(kù)集群

  1. 打開(kāi)mongod時(shí)添加選項(xiàng) --replSet replname;

  2. 在mongo客戶(hù)端連接上一個(gè)mongod進(jìn)程么翰,進(jìn)入admin數(shù)據(jù)庫(kù)牺汤,然后聲明mongoconf變量:

use admin;
var rsconf={_id:'replname',members[{_id:0,host:'xxx'},{_id:1,host:'xxy'}]};
  1. 用rs.initiatee(rsconf);來(lái)初始化集群,mongo會(huì)自動(dòng)將id號(hào)小的設(shè)為primary,其他的mongod進(jìn)程為secondary浩嫌。

  2. 連接secondary進(jìn)程檐迟,使用slaveOk()函數(shù),來(lái)初始化從進(jìn)程码耐。

PHP中操作mongo數(shù)據(jù)庫(kù)

我們先為php添加mongo擴(kuò)展追迟。然后,我們便可以在腳本中使用mongo類(lèi)函數(shù)庫(kù)了骚腥。

不同于其他的類(lèi)庫(kù)只有一個(gè)核心類(lèi)敦间,mongo有四個(gè)類(lèi),分別是:

Mongo類(lèi)束铭,基礎(chǔ)類(lèi)廓块,擁有連接、關(guān)閉連接契沫、對(duì)全局?jǐn)?shù)據(jù)庫(kù)的操作方法带猴。mongoDB類(lèi),由Mongo類(lèi)通過(guò)selectDB()方法得到懈万,擁有表級(jí)的操作方法浓利。MongoCollection類(lèi),一般由Mongo->dbname->collection或直接用MongoDB類(lèi)和數(shù)據(jù)庫(kù)名實(shí)例化得到钞速,擁有對(duì)數(shù)據(jù)的基本操作贷掖。MongoCursor類(lèi),由MongoCollection通過(guò)find()方法得到渴语,擁有普通的游標(biāo)遍歷操作苹威。

以下是一個(gè)典型的mongo操作:

$mongo=new Mongo();
$mongo->connect('host',port);
$collection=$mongo->dbname->collection;
$cursor=$collection->find();
$cursor->operate();
$mongo->close();

python中操作mongo數(shù)據(jù)庫(kù)

安裝

pip install pymongo

使用

In [1]: from pymongo import MongoClient
In [2]: m = MongoClient(host="127.0.0.1",port=27017)
In [3]: db = m.youdi
In [4]: col = youdi.col
In [7]: for i in col.find():
 ...:     print(i)

In [8]: dir(col)
Out[8]:
['_BaseObject__codec_options',
 '_BaseObject__read_concern',
 '_BaseObject__read_preference',
 '_BaseObject__write_concern',
 '_Collection__create',
 '_Collection__create_index',
 '_Collection__database',
 '_Collection__find_and_modify',
 '_Collection__full_name',
 '_Collection__name',
 '_Collection__write_response_codec_options',
 '__call__',
 '__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattr__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__lt__',
 '__module__',
 '__ne__',
 '__new__',
 '__next__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 '_aggregate',
 '_command',
 '_count',
 '_delete',
 '_delete_retryable',
 '_insert',
 '_insert_one',
 '_legacy_write',
 '_socket_for_primary_reads',
 '_socket_for_reads',
 '_socket_for_writes',
 '_update',
 '_update_retryable',
 'aggregate',
 'aggregate_raw_batches',
 'bulk_write',
 'codec_options',
 'count',
 'create_index',
 'create_indexes',
 'database',
 'delete_many',
 'delete_one',
 'distinct',
 'drop',
 'drop_index',
 'drop_indexes',
 'ensure_index',
 'find',
 'find_and_modify',
 'find_one',
 'find_one_and_delete',
 'find_one_and_replace',
 'find_one_and_update',
 'find_raw_batches',
 'full_name',
 'group',
 'index_information',
 'initialize_ordered_bulk_op',
 'initialize_unordered_bulk_op',
 'inline_map_reduce',
 'insert',
 'insert_many',
 'insert_one',
 'list_indexes',
 'map_reduce',
 'name',
 'next',
 'options',
 'parallel_scan',
 'read_concern',
 'read_preference',
 'reindex',
 'remove',
 'rename',
 'replace_one',
 'save',
 'update',
 'update_many',
 'update_one',
 'watch',
 'with_options',
 'write_concern']
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市驾凶,隨后出現(xiàn)的幾起案子牙甫,更是在濱河造成了極大的恐慌,老刑警劉巖调违,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窟哺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡技肩,警方通過(guò)查閱死者的電腦和手機(jī)且轨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人旋奢,你說(shuō)我怎么就攤上這事泳挥。” “怎么了至朗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵屉符,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锹引,道長(zhǎng)矗钟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任嫌变,我火速辦了婚禮吨艇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘初澎。我一直安慰自己秸应,他們只是感情好虑凛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布碑宴。 她就那樣靜靜地躺著,像睡著了一般桑谍。 火紅的嫁衣襯著肌膚如雪延柠。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天锣披,我揣著相機(jī)與錄音贞间,去河邊找鬼。 笑死雹仿,一個(gè)胖子當(dāng)著我的面吹牛增热,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胧辽,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼峻仇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了邑商?” 一聲冷哼從身側(cè)響起摄咆,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎人断,沒(méi)想到半個(gè)月后吭从,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恶迈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年涩金,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸭廷,死狀恐怖枣抱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辆床,我是刑警寧澤佳晶,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站讼载,受9級(jí)特大地震影響轿秧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咨堤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一菇篡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧一喘,春花似錦驱还、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至萎战,卻和暖如春咐容,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚂维。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工戳粒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虫啥。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓蔚约,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涂籽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苹祟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1.運(yùn)動(dòng) 散步3公里 2.睡眠 深度2小時(shí)14分 淺度4小時(shí)15分 3.讀書(shū) 上課讀,原則又活,賴(lài)世雄語(yǔ)法 飯后讀...
    新的一年1閱讀 132評(píng)論 0 0
  • 小雪過(guò)了半個(gè)月 大雪昨天也到了 可雪的影子 南嶺的罡風(fēng)看不到 漓江的魚(yú)鷹看不到 十萬(wàn)大山的炊煙看不到 那本被人遺忘...
    江恨雨閱讀 382評(píng)論 2 15
  • 寫(xiě)這個(gè)題目是因?yàn)樾√A寫(xiě)的柳骄,我也拿來(lái)用团赏。為什么拿來(lái)用呢,原來(lái)我想寫(xiě)又開(kāi)學(xué)了耐薯,不想上班舔清,看了小藺的文字丝里,應(yīng)該是王...
    我想做個(gè)好辣媽閱讀 214評(píng)論 2 2
  • 娜塔麗·波特曼(Natalie Portman),美國(guó)好萊塢著名女演員体谒。美國(guó)哈佛大學(xué)心理學(xué)系畢業(yè)杯聚。1994年,...
    小儀式閱讀 328評(píng)論 0 0
  • 雖然上周信誓旦旦的以為找到了大塊時(shí)間早起而高興抒痒,但是實(shí)際上早起對(duì)于夜貓子來(lái)說(shuō)真的不像想象的那么簡(jiǎn)單幌绍。 思來(lái)想去還沒(méi)...
    泓_c430閱讀 186評(píng)論 0 0