RethinkDB: получить только одну запись от курсора

Как получить только одну запись из курсора, используя вторичные индексы?

r.db('domains').table('info').getAll(domain, {index: 'domain'}).run connection, (err, cursor) ->
  throw err if err
  cursor.toArray (err, info) ->
    throw err if err
    callback info

Как получить только одну запись?


person Medvedev    schedule 25.11.2013    source источник


Ответы (2)


Вероятно, самый простой способ - изменить запрос следующим образом:

r.db('domains').table('info').getAll(domain, {index: 'domain'}).limit(1)

Это вернет вам только первый документ. Вы также можете использовать только 1 документ из курсора. Но это, вероятно, не так чисто.

person Joe Doliner    schedule 25.11.2013
comment
Я не могу найти документацию о курсорах rethinkdb. Вы можете помочь мне? - person Medvedev; 27.11.2013
comment
Что бы вы хотели узнать о курсорах? - person Joe Doliner; 12.12.2013

Есть несколько способов сделать это. Вот что мне нравится делать:

R.table('foo')
.getAll('bar', {index: 'baz'})
.coerceTo('array')
.run(connection, (err, results) => {

  var result

  if (err) {
    //always handle errors :)
  }

  result = results[0]

  //dosomething with your "result"
})
person wle8300    schedule 02.09.2016