Sequelize और भू-स्थानिक प्रश्नों का उपयोग करते हुए, "मैं" किसी निश्चित स्थान पर निकटतम बिंदु ढूंढना चाहता हूं, तो सीक्वेलिज़ क्वेरी कैसे होनी चाहिए?भू-स्थानिक क्वेरी को सीक्वेलिज़ करें:
मान लें मैं एक मॉडल है कि कुछ इस तरह दिखता है:
sequelize.define('Point', {geo: DataTypes.GEOMETRY('POINT')});
अब हम की तरह कुछ के माध्यम से DB में इनपुट 100 यादृच्छिक अंक मान लीजिए:
db.Point.create({geo: {type: 'Point', coordinates: [randomLat, randomLng]}});
कल्पना कीजिए हमारे पास एक lat
और lng
किसी स्थान को परिभाषित करने के लिए चर, और हम इसे 10 निकटतम बिंदु ढूंढना चाहते हैं। जब मैं इस क्वेरी को चलाता हूं तो मुझे एक त्रुटि मिलती है:
const location = sequelize.literal(`ST_GeomFromText('POINT(${lat} ${lng})', 4326)`);
db.Point.findAll({
attributes: [['distance', sequelize.fn('ST_Distance', sequelize.col('Point'), location)]],
order: 'distance',
limit: 10
});
// -> TypeError: s.replace is not a function
कोई विचार यह समस्या/इसे ठीक करने का तरीका क्या है?
Thx!
[sequelize.fn('ST_Distance_Sphere', sequelize.literal('geolocation'), location), 'ALIASNAME']
इसके अलावा, ST_Distance_Sphere
को ST_Distance
बदलने का प्रयास करें:
मुझे यकीन नहीं है, लेकिन ऐसा लगता है कि आपके पास –
विशेषताएँ के आसपास अतिरिक्त वर्ग ब्रैकेट हैं? –