• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      文檔數(shù)據(jù)庫MongoDB在快遞物流系統(tǒng)上的應(yīng)用

      2018-04-25 09:39:44張潔鑫
      讀天下 2017年17期
      關(guān)鍵詞:物流

      摘 要:MongoDB是NoSQL中面向文檔的數(shù)據(jù)庫,是一個基于分布式文件存儲的數(shù)據(jù)庫系統(tǒng)。適用于后臺具有大量讀寫操作的網(wǎng)站、使用嵌套結(jié)構(gòu)等非規(guī)范化數(shù)據(jù)的應(yīng)用程序。MongoDB支持GIS功能,數(shù)據(jù)結(jié)構(gòu)靈活,非常適用于支撐物流業(yè)務(wù)。

      關(guān)鍵詞:NoSQL;MongoDB;物流

      MongoDB是以高性能和可擴(kuò)展性為特征的開源軟件,它將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(keyValue)對組成。MongoDB的文檔相當(dāng)于關(guān)系數(shù)據(jù)庫中的一行記錄,多個文檔組成一個集合相當(dāng)于關(guān)系數(shù)據(jù)庫的表,多個集合邏輯上組合在一起就是數(shù)據(jù)庫。

      一、 MongoDB的優(yōu)勢與不足

      MongoDB最大的特征是無表結(jié)構(gòu),進(jìn)行表結(jié)構(gòu)變更時,只需要在程序進(jìn)行相應(yīng)的修改就可以了,不必關(guān)心表結(jié)構(gòu)和程序之間的一致性。它采用的面向文檔的數(shù)據(jù)模型使其可以自動在多臺服務(wù)器之間分散數(shù)據(jù),還可以平衡集群的數(shù)據(jù)和負(fù)載,自動重排文檔,這樣開發(fā)者就不用考慮如何擴(kuò)展;當(dāng)需要更大的容量時,只需在集群中添加新機(jī)器,然后讓數(shù)據(jù)庫來處理。

      MongoDB不支持JOIN查詢與事務(wù)處理。使用MongoDB創(chuàng)建和更新數(shù)據(jù)的時候,數(shù)據(jù)不會實(shí)時寫入到硬盤中,由于不能實(shí)時向硬盤中寫入數(shù)據(jù),所以就有可能出現(xiàn)數(shù)據(jù)丟失的情況。

      二、 MongoDB的原理

      (一) 索引原理

      簡單地說,索引就是將文檔按照某個(或某些)字段順序組織起來,以便能根據(jù)字段高效的查詢。MongoDB默認(rèn)會為插入的文檔生成_id字段作為文檔唯一的標(biāo)識,為了保證能根據(jù)文檔id快速查詢文檔,MongoDB默認(rèn)會為集合創(chuàng)建_id 字段的索引。MongoDB支持多種類型的索引,包括單字段索引、復(fù)合索引、多key索引、文本索引等。

      (二) 復(fù)制集

      MongoDB復(fù)制集具有故障自動切換和自動修復(fù)成員節(jié)點(diǎn)的功能,各個DB之間數(shù)據(jù)完全一致,大大降低了維護(hù)成本。復(fù)制集的結(jié)構(gòu)非常類似一個集群,其中一個節(jié)點(diǎn)出現(xiàn)故障,其他節(jié)點(diǎn)馬上會將業(yè)務(wù)接過來而無需停機(jī)操作。

      (三) MongoDB GIS

      MongoDB遵循是GEOJSON規(guī)范,{type:””,coordinates:}coordinates是一個[longitude,latitude]的數(shù)組類型。

      三、 MongoDB在快遞物流系統(tǒng)的應(yīng)用

      快遞物流系統(tǒng)最常見的業(yè)務(wù)類型就是訂單的查詢和記錄,訂單的特點(diǎn)是隨著遞送過程,訂單數(shù)據(jù)需要隨時更新路徑。物流系統(tǒng)用到的特性有:MongoDB的數(shù)組結(jié)構(gòu),索引,GIS功能。以下通過講解一個Demo以供參考。

      (一) 數(shù)據(jù)操作

      物流快遞的訂單修改主要是查詢和信息追加兩種,主要介紹這兩種:

      >db.order.find({_id:”1000”});∥根據(jù)訂單號查詢

      ∥更新物流狀態(tài)

      >db.order.update({_id:”1000”},

      {$push:{details:

      {“action”:”delivering”,”operator”:”快遞員王五”,”date”:ISODate(”2017-11-01-21T20:00:00+08:00”)}

      }}

      (二) 索引創(chuàng)建

      索引可以使任何類型的字段,_id索引默認(rèn)存在,不需要再創(chuàng)建;當(dāng)數(shù)據(jù)量較大時,可以使用sharding結(jié)構(gòu),shardkey的選擇上可以使用Hash(_id)。

      ∥TTL索引,字段creat_date,180后自動清理數(shù)據(jù)

      >db.order.createIndex({”create_date”:1},”expireAfterSeconds”:15552000)

      位置和狀態(tài)索引,為了能快速處理“某地未處理訂單”查詢,這是一個多條件的查詢,所以是一個復(fù)合索引,status字段放在前面,因?yàn)槎鄶?shù)的查詢都會依賴狀態(tài)字段。

      ∥位置和狀態(tài)的復(fù)合索引,多條件的查詢

      >db.order.createIndex({”status”:1,”delivery.city”:1,”delivery.address”:1})

      總的來說,MongoDB有很高的可擴(kuò)展性,有一個很好的 replication 模式,有很完善的Java API,存儲格式是Json的,這對Java來說非常好處理,運(yùn)維起來非常方便,不用專門為它安排一個管理員。但是應(yīng)用經(jīng)驗(yàn)缺乏,我們都沒有相關(guān)NoSQL 產(chǎn)品的使用經(jīng)驗(yàn),項(xiàng)目相對來說還比較新,和以往的存儲相比,數(shù)據(jù)的關(guān)系性操作不再存在。

      作者簡介:

      張潔鑫,四川省成都市,武警警官學(xué)院。

      猜你喜歡
      物流
      展會
      本刊重點(diǎn)關(guān)注的物流展會
      本刊重點(diǎn)關(guān)注的物流展會
      本刊重點(diǎn)關(guān)注的物流展會
      “智”造更長物流生態(tài)鏈
      汽車觀察(2018年12期)2018-12-26 01:05:44
      科技改變物流,物流改變生活
      企業(yè)該怎么選擇物流
      關(guān)于物流大通道你需要知道這些
      中國公路(2017年6期)2017-07-25 09:13:58
      跨境電商物流與物流前沿
      基于低碳物流的公路運(yùn)輸優(yōu)化
      桃园县| 英山县| 蓬安县| 饶平县| 湟源县| 阿巴嘎旗| 饶平县| 淳安县| 六安市| 阆中市| 法库县| 抚宁县| 井研县| 卫辉市| 乐昌市| 萨嘎县| 讷河市| 常德市| 清镇市| 宣化县| 上思县| 合山市| 潢川县| 孟州市| 海阳市| 屏山县| 永寿县| 东宁县| 原阳县| 额敏县| 新宾| 久治县| 清涧县| 永昌县| 泾源县| 天镇县| 沧州市| 嘉峪关市| 正定县| 长汀县| 嘉定区|