UNPKG

@warlock.js/cascade

Version:

ORM for managing databases

45 lines (44 loc) 1.33 kB
import {Pipeline}from'./pipeline.js';class GeoNearPipeline extends Pipeline { column; location; maxDistance; minDistance; /** * Constructor */ constructor(column, location, maxDistance, minDistance) { super("geoNear"); this.column = column; this.location = location; this.maxDistance = maxDistance; this.minDistance = minDistance; } /** * {@inheritdoc} */ parse() { return { $geoNear: { near: { type: "Point", coordinates: [this.location.lng, this.location.lat], }, distanceField: this.column, ...(this.maxDistance && { maxDistance: this.maxDistance }), ...(this.minDistance && { minDistance: this.minDistance }), spherical: true, // distance should be calculated in kilometers distanceMultiplier: 0.001, }, }; } /** * Sort Order */ sortOrder() { return -1; } } function geoNearPipeline(column, location, maxDistance, minDistance) { return new GeoNearPipeline(column, location, maxDistance, minDistance); }export{GeoNearPipeline,geoNearPipeline};//# sourceMappingURL=GeoNearPipeline.js.map