PHP使用MongoDB儲存經緯度,查詢距離

2022-07-02 17:48:12 字數 1045 閱讀 3776

<?php 

/*使用命令建立資料庫:

use user

使用命令建立集合:

db.createcollection(user)

使用命令建立2dsphere索引:

db.user.createindex()

*///

php**插入經緯度資料:

function uploadmongodblocation()

//php**查詢距離:

//注意:這裡使用的command根據版本不同,用法可能會有區別,這裡使用的mongodb版本是3.6.5

function findmongodblocation()}}

return

$items;

}

往資料庫中批量插入資料,use mage切換到mage資料庫,執行db.user.insertmany(),user是文件名,insertmany()是批量插入命令,裡面傳入json陣列,

代表一條使用者資料,其中gender:0代表女1,代表男,loc是乙個經緯度的陣列,當然也可以是loc : ,但官方推薦陣列。

db.user.insertmany([

, ,, ,

, ,, ,

, ,])

因為我以二維平面上點的方式儲存的資料,想要進行lbs查詢,那麼要設定2d索引。db.user.createindex()其中loc是索引的字段。

查詢附近的人,首先的指導當前使用者所在的經緯度,如果不僅想要得到資料還要得到距離,那麼可以使用$geonear指令,如果距離自己去計算可以使用$near或者$geowithin然後在手動計算距離。此處採用$geonear指令查詢附近2000m的人。

db.user.aggregate(

})

public

function ci_mongodb($data)

使用MongoDB儲存Docker日誌

日誌是系統很重要的乙個組成部分,通過日誌可以及時發現系統中存在的問題,也可以為修復問題提供線索。docker提供了多種外掛程式方式管理日誌,本文就對使用mongodb儲存docker日誌的過程做個記錄。docker產生的日期 傳送到 fluentd,然後fluentd在轉存到mongodb。前提 作...

使用MongoDB儲存Docker日誌(續)

查閱fluentd的文件得知,有乙個flush引數可以控制日誌的寫入頻率,預設的是60s。更改flush interval引數就可以提高寫入頻率,具體更改如下 match tag docker.and dump to console type mongo host 127.0.0.1 port 22...

MongoDB儲存配置

無論資料還是索引都存放在硬碟中。到要使用的時候才交換到記憶體中。對於讀密集型應用,規劃好伺服器大小以保證在記憶體中能支撐整個工作集並且進行複製以得到更高的可用性。如果你伺服器的記憶體 ram 不能夠保證在記憶體中容納工作集,進行分片以從多個複本集群中整合記憶體 ram 使用與部署相同的伺服器硬體建立...