MongoDB에서 데이터의 실시간 물류 추적 기능을 구현하는 방법
물류 추적은 물품의 위치와 상태를 실시간으로 추적함으로써 기업이 흐름을 정확하게 파악하는 데 도움이 됩니다. 상품의 물류 효율성을 향상시킵니다. 실제 물류 관리에 있어서 효율적인 비관계형 데이터베이스인 MongoDB는 실시간 물류 추적을 효과적으로 지원할 수 있습니다. 이 기사에서는 MongoDB에서 데이터의 실시간 물류 추적 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
MongoDB에서는 물류 정보를 저장하는 컬렉션을 디자인할 수 있습니다. 각 물류정보에는 화물ID, 출발지, 도착지, 예상도착시간, 실제도착시간 등의 속성이 포함될 수 있다. 동시에 각 물류정보에 고유의 추적코드(Tracking Code)를 추가하여 물류정보를 식별할 수 있습니다. 이런 식으로 추적 코드를 통해 물류 정보를 조회하고 추적할 수 있습니다.
다음은 물류 정보 문서 구조의 예입니다.
{
"_id": ObjectId("5f8d07ea0c78f7a8e4070b68"),
"trackingCode": "ABC123",
"cargoId": "C01",
"origin": "상하이",
"목적지": "베이징",
"estimatedArrivalTime": ISODate("2020-10-20T10:00:00Z"),
"actualArrivalTime": ISODate("2020-10-19T11:30:00Z " "),
"status": "Delivered"
}
실시간 물류 추적 기능을 구현하려면 MongoDB의 물류 정보를 실시간으로 업데이트해야 합니다. 일반적인 구현은 MongoDB의 변경 스트림 기능을 사용하는 것입니다. 변경 스트림을 통해 컬렉션의 변경 사항을 모니터링하고 업데이트된 데이터를 실시간으로 얻을 수 있습니다.
다음은 변경 스트림 코드의 예입니다.
const { MongoClient } = require('mongodb');
async function trackLogistics() {
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);
try {
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);
위 코드는 물류 정보의 변경 사항을 수신하여 필터링합니다. "배송됨" 상태의 물류 정보입니다. 새로운 물류정보 상태가 "배송완료"로 업데이트될 때마다 추적코드와 상태가 인쇄됩니다. 이를 통해 물류정보의 변화를 실시간으로 추적할 수 있습니다.
실시간 추적 기능 외에도 추적 코드를 기반으로 특정 물류 정보를 조회할 수도 있습니다. 다음은 예제 쿼리 코드입니다.
const { MongoClient } = require('mongodb');
async function queryLogistics(trackingCode) {
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);
try {
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!