4
我使用的是geoNear()
來計算我的Mongo數據庫中對象之間的距離。 該查詢完美工作,即使使用了附加字段過濾器(如->field('name')->equals($name)
等)...Doctrine MongoDB geoNear()dinstance在添加附加查詢時設置爲0
這會自動在對象上填充映射字段@ODM \ Distance。
$this->getQueryBuilder()
->geoNear((float) $query['near_longitude'], (float) $query['near_latitude'])
->spherical(true)
->distanceMultiplier(self::EARTH_RD_KM);
如果我添加一個->field('id')->in($array)
但這個距離是0。突然我 真的不知道哪裏的信息丟失。 這是$在MongoDB中的工作限制嗎?
你想實現什麼?最後的查詢會給出錯誤的結果或正確的結果?用這些細節更新你的問題。 –
你在哪裏添加 - > field('id') - > in($ array)?我猜你正在改變你的查詢的含義 - 顯示添加了這個新部分的完整查詢。 –
$ this-> getQueryBuilder() - > field('id') - > in($ filters ['ids_set']); $ filters ['ids_set']是一個ID數組,它給了我正確的結果子集,但沒有距離,現在爲零。如果我不過濾 - >在裏面給我的距離。 @AsyaKamsky – Simon