Knex: κ³„μ‚°λœ 열을 μ„ νƒν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

에 λ§Œλ“  2014λ…„ 12μ›” 18일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: knex/knex

postgresql earthdistance ν™•μž₯을 μ‚¬μš©ν•˜μ—¬ 쿼리λ₯Ό μž‘μ„±ν•˜λ €κ³  ν•˜λŠ”λ° κ³„μ‚°λœ 열을 λ°˜ν™˜ν•˜κ³  μ‹Άμ§€λ§Œ "670906,-79" ν…Œμ΄λΈ”μ— λŒ€ν•œ FROM 절 ν•­λͺ© λˆ„λ½μ— λŒ€ν•œ 였λ₯˜κ°€ 계속 λ°œμƒν•©λ‹ˆλ‹€. 이것은 μ•„λ§ˆλ„ νŒŒμ„œκ°€ 점이 ν…Œμ΄λΈ” 이름과 μ—΄ 이름을 κ΅¬λΆ„ν•œλ‹€κ³  μƒκ°ν•˜κΈ° λ•Œλ¬ΈμΌ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 제 κ²½μš°μ—λŠ” 계산을 μˆ˜ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€(μ•„λž˜ 예제 쿼리 μ°Έμ‘°). 이 문제λ₯Ό ν•΄κ²°ν•  방법이 μžˆμŠ΅λ‹ˆκΉŒ?

Possibly unhandled error: missing FROM-clause entry for table "670906,-79"
    at Connection.parseE (/usr/local/lib/node_modules/pg/lib/connection.js:534:11)
    at Connection.parseMessage (/usr/local/lib/node_modules/pg/lib/connection.js:361:17)
    at Socket.<anonymous> (/usr/local/lib/node_modules/pg/lib/connection.js:105:22)
    at Socket.emit (events.js:95:17)
    at Socket.<anonymous> (_stream_readable.js:764:14)
    at Socket.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:426:10)
    at emitReadable (_stream_readable.js:422:5)
    at readableAddChunk (_stream_readable.js:165:9)
    at Socket.Readable.push (_stream_readable.js:127:10)
  var columns = [
    'id',
    '(earth_distance(ll_to_earth(lat, lng), ll_to_earth(43.670906, -79.393331)) as distance)'
  ];
  var result = knex
    .select(columns)
    .from('stores')
    .whereRaw('earth_box(ll_to_earth(43.670906, -79.393331), ?) @> ll_to_earth(lat, lng)', [radiusInStatuteMiles])
question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ³„μ‚°λœ 열에 knex.raw λ₯Ό μ‚¬μš©ν•΄μ•Ό μΈμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€μŒμ΄ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

var columns = [
  'id',
  knex.raw('earth_distance(ll_to_earth(lat, lng), ll_to_earth(43.670906, -79.393331)) as distance')
];
var result = knex
.select(columns)
.from('stores')
.whereRaw('earth_box(ll_to_earth(43.670906, -79.393331), ?) @> ll_to_earth(lat, lng)', [radiusInStatuteMiles])

λͺ¨λ“  3 λŒ“κΈ€

κ³„μ‚°λœ 열에 knex.raw λ₯Ό μ‚¬μš©ν•΄μ•Ό μΈμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€μŒμ΄ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

var columns = [
  'id',
  knex.raw('earth_distance(ll_to_earth(lat, lng), ll_to_earth(43.670906, -79.393331)) as distance')
];
var result = knex
.select(columns)
.from('stores')
.whereRaw('earth_box(ll_to_earth(43.670906, -79.393331), ?) @> ll_to_earth(lat, lng)', [radiusInStatuteMiles])

감사 ν•΄μš”! λ‚΄κ°€ ν•„μš”ν–ˆλ˜ λ°”λ‘œ κ·Έ 것. μ–΄λ–»κ²Œ λ“  knex.raw 을 μ‚¬μš©ν•  생각을 ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ²œλ§Œμ—μš”!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰