Dengan perkembangan pesat Internet, sejumlah besar data terus dijana dan terkumpul. Bagi perusahaan, cara memproses data ini dengan cekap dan menjalankan analisis yang bermakna adalah isu yang sangat penting. Dalam aplikasi data besar, data siri masa dan data geografi adalah dua jenis yang sangat biasa. Artikel ini akan memperkenalkan cara menggunakan MongoDB dan Atlas untuk melaksanakan data siri masa dan storan dan statistik data geografi.
MongoDB ialah pangkalan data dokumen yang menggunakan dokumen dalam format JSON untuk menyimpan data dan bukannya bentuk jadual tradisional. Ini menjadikan MongoDB lebih fleksibel dan berkuasa, terutamanya apabila menyimpan data tidak berstruktur. MongoDB juga lebih mudah untuk skala secara mendatar dan mencapai ketersediaan yang tinggi daripada pangkalan data hubungan.
Atlas ialah perkhidmatan terurus untuk MongoDB yang menyediakan cara mudah dan berkuasa untuk mengurus dan menggunakan MongoDB. Atlas menyokong pelbagai penyedia perkhidmatan awan, termasuk AWS, Google Cloud dan Microsoft Azure, serta menawarkan pelbagai pilihan keselamatan dan alat pemantauan.
Data siri masa ialah sejenis data yang berubah mengikut masa, seperti data penderia, maklumat log, dsb. Dalam banyak aplikasi, storan, pertanyaan dan statistik data siri masa adalah sangat penting. MongoDB menyokong penyimpanan dan pemprosesan data siri masa yang cekap dengan menyokong teknologi seperti pengindeksan TTL, replikasi dan sharding.
Indeks TTL (Time To Live) ialah indeks khas dalam MongoDB yang boleh mengawal masa tamat tempoh dokumen. Menggunakan indeks TTL, data siri masa boleh dipadamkan secara automatik untuk mengelakkan pertumbuhan data tanpa had. Penggunaan indeks TTL juga sangat mudah Anda hanya perlu menentukan atribut semasa membuat indeks dan menetapkan masa tamat atribut.
Berikut ialah contoh menggunakan pemacu sambungan PHP dan MongoDB (Perpustakaan PHP MongoDB) untuk mengendalikan data siri masa:
// 连接 MongoDB $client = new MongoDBClient("mongodb://localhost:27017"); // 获取数据库和集合 $database = $client->sensor; $collection = $database->data; // 插入数据 $data = [ "timestamp" => new MongoDBBSONUTCDateTime(), "value" => rand(0, 100) ]; $result = $collection->insertOne($data); // 查询数据 $start = new MongoDBBSONUTCDateTime(strtotime("-1 day") * 1000); $end = new MongoDBBSONUTCDateTime(); $filter = ["timestamp" => ['$gte' => $start, '$lte' => $end]]; $options = ["sort" => ["timestamp" => 1]]; $cursor = $collection->find($filter, $options); // 输出数据 foreach ($cursor as $document) { echo $document["timestamp"]->toDateTime()->format('Y-m-d H:i:s') . " " . $document["value"] . " "; }
Dalam contoh ini, kami mula-mula menyambung ke MongoDB dan memperoleh pangkalan data A bernama sensor
dan koleksi bernama data
. Kami kemudiannya memasukkan dokumen yang mengandungi cap masa dan nilai data. Akhir sekali, kami menanyakan data untuk hari terbaharu dan mengeluarkan cap masa dan nilainya.
Data geografi ialah sejenis data yang disimpan dan diproses berdasarkan lokasi geografi, seperti data peta, data GPS, dsb. Dalam kebanyakan aplikasi, storan, pertanyaan dan statistik data geografi juga sangat penting. MongoDB menyokong penyimpanan dan pemprosesan data geografi yang cekap dengan menyokong teknologi seperti pengindeksan geografi dan pertanyaan geografi.
Indeks geografi ialah indeks khas dalam MongoDB yang mengoptimumkan prestasi pertanyaan berdasarkan maklumat lokasi geografi dalam dokumen. Menggunakan pengindeksan geo, anda boleh menanyakan data berhampiran lokasi dengan mudah, melukis peta haba data agregat pada peta dan banyak lagi.
Berikut ialah contoh menggunakan pemacu sambungan PHP dan MongoDB untuk mengendalikan data geografi:
// 连接 MongoDB $client = new MongoDBClient("mongodb+srv://<username>:<password>@<cluster>.mongodb.net/test"); // 获取数据库和集合 $database = $client->geodata; $collection = $database->places; // 创建地理索引 $collection->createIndex(["location" => "2dsphere"]); // 插入数据 $data = [ "name" => "Central Park", "location" => ["type" => "Point", "coordinates" => [-73.967617, 40.785091]] ]; $result = $collection->insertOne($data); // 查询数据 $point = new MongoDBBSONJavascript('function() {return {type: "Point", coordinates: [-73.964609, 40.782865]}}'); $filter = ["location" => ['$near' => ['$geometry' => $point]]]; $options = ["limit" => 3]; $cursor = $collection->find($filter, $options); // 输出数据 foreach ($cursor as $document) { echo $document["name"] . " " . $document["location"]["coordinates"][0] . "," . $document["location"]["coordinates"][1] . " "; }
Dalam contoh ini, kami mula-mula menyambung ke MongoDB dalam Atlas, dan kemudian memperoleh fail bernama A pangkalan data daripada geodata
dan koleksi yang dipanggil places
. Seterusnya, kami mencipta geoindex untuk menjadikannya lebih pantas untuk menanyakan data berhampiran lokasi. Kami kemudiannya memasukkan dokumen yang mengandungi maklumat lokasi dan menanyakan tiga lokasi yang paling hampir dengan satu titik.
Artikel ini memperkenalkan cara menggunakan MongoDB dan Atlas untuk menyimpan dan menanyakan data siri masa dan data geografi. Model pangkalan data dokumen MongoDB dan bahasa pertanyaan yang berkuasa menjadikannya sesuai untuk bekerja dengan data tidak berstruktur, manakala perkhidmatan terurus dan pilihan keselamatan Atlas membantu pengguna menggunakan dan mengurus MongoDB dengan mudah. Dengan menggabungkan indeks siri masa, indeks geografi dan ciri lain, MongoDB dan Atlas membantu pengguna memproses dan menganalisis pelbagai jenis data dengan cekap.
Atas ialah kandungan terperinci Pembangunan PHP: Gunakan MongoDB dan Atlas untuk melaksanakan data siri masa dan storan dan statistik data geografi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!