MongoDBにデータのリアルタイム物流追跡機能を実装する方法

WBOY
リリース: 2023-09-21 15:00:11
オリジナル
1128 人が閲覧しました

MongoDBにデータのリアルタイム物流追跡機能を実装する方法

MongoDB にデータのリアルタイム物流追跡機能を実装する方法

物流追跡は、サプライ チェーン管理における重要なリンクです。商品の位置と状態を追跡することによって、リアルタイムで物の流れを正確に把握し、物流効率を向上させることができます。実際の物流管理では、MongoDB は効率的な非リレーショナル データベースとして、リアルタイムの物流追跡を適切にサポートします。この記事では、MongoDB にデータのリアルタイム物流追跡機能を実装する方法と具体的なコード例を紹介します。

  1. データ モデルの設計

MongoDB では、物流情報を保存するコレクションを設計できます。各物流情報には、貨物 ID、出発地、目的地、到着予定時刻、実際の到着時刻などの属性を含めることができます。同時に、各物流情報に、物流情報を識別するための固有のトラッキングコード(Tracking Code)を付加することができる。このようにして、追跡コードを通じて物流情報を照会および追跡できます。

以下は物流情報ドキュメント構造の例です:

{
"_id": ObjectId("5f8d07ea0c78f7a8e4070b68"),
"trackingCode": "ABC123",
"cargoId": "C01",
"origin": "Shanghai",
"destination": "Beijing",
"estimatedArrivalTime": ISODate("2020-10-20T10:00:00Z "),
"actualArrivalTime": ISODate("2020-10-19T11:30:00Z"),
"status": "配達済み"
}

  1. Real-時間データ更新

リアルタイム物流追跡機能を実現するには、MongoDB 上の物流情報をリアルタイムに更新する必要があります。一般的な実装は、MongoDB の Change Streams 機能を使用することです。 Change Streams を通じて、コレクション内の変更を監視し、更新されたデータをリアルタイムで取得できます。

以下は Change Streams コードの例です:

const { MongoClient } = require('mongodb');

async function trackLogistics() {
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

試行 {

await client.connect();

const pipeline = [
  { $match: { 'fullDocument.status': 'Delivered' } }
];

const changeStream = client.db('logistics').collection('shipments')
  .watch(pipeline);

changeStream.on('change', (change) => {
  const trackingCode = change.fullDocument.trackingCode;
  const status = change.fullDocument.status;

  console.log(`物流追踪码:${trackingCode},状态:${status}`);
});

await new Promise((resolve) => setTimeout(resolve, Infinity));
ログイン後にコピー

} 最後に {

await client.close();
ログイン後にコピー
ログイン後にコピー

}
}

trackLogistics().catch(console.error);

上記のコードは、物流情報の変化を監視し、ステータスが「配達済み」の物流情報を除外します。新しい物流情報ステータスが「配達済み」に更新されるたびに、追跡コードとステータスが印刷されます。これにより、物流情報の変化をリアルタイムに把握することができます。

  1. 物流情報クエリ

リアルタイム追跡機能に加えて、追跡コードに基づいて特定の物流情報をクエリすることもできます。以下はクエリ コードの例です:

const { MongoClient } = require('mongodb');

async function queryLogistics(trackingCode) {
const uri = "mongodb:// localhost:27017";
const client = new MongoClient(uri);

最終的に {

await client.connect();

const logistics = client.db('logistics').collection('shipments');

const result = await logistics.findOne({ trackingCode });

console.log(result);
ログイン後にコピー

} を試してください {

await client.close();
ログイン後にコピー
ログイン後にコピー

}
}

queryLogistics('ABC123').catch(console.error);

queryLogistics 関数を呼び出してトラッキング コードを渡すことにより、トラッキング コードに対応する物流情報をクエリできます。

上記のコード例を通じて、MongoDB にデータのリアルタイムの物流追跡機能を実装できます。適切なデータモデル、リアルタイムのデータ更新、物流情報の照会操作を設計することで、さまざまな物流シーンに柔軟に対応し、物流管理の効率化と精度の向上を実現します。

以上がMongoDBにデータのリアルタイム物流追跡機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート