Найти запись в Mongod без ID - PullRequest
       13

Найти запись в Mongod без ID

1 голос
/ 20 сентября 2019

Когда я запускаю этот запрос (в консоли rails):

Analytic.where(:created_at.gte => start_date, :created_at.lte => end_date).only(:user_uuid).as_json

Ответ также возвращает «_id» по умолчанию.Я хочу пропустить этот «_id» из ответа, используя запрос.

Когда я проверяю хеш, я получаю это:

#<Mongoid::Criteria
  selector: {"created_at"=>{"$gte"=>2018-06-27 06:00:00 UTC, "$lte"=>2018-06-28 05:59:59 UTC}}
  options:  {:fields=>{"_id"=>1, "user_uuid"=>1}}
  class:    Analytic
  embedded: false>

Что показывает, что он также запрашивает "_id".

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Попробуйте:

Analytic
  .where(
    :created_at.gte => start_date,
    :created_at.lte => end_date
  ).pluck(
    :user_uuid
  ).as_json

РЕДАКТИРОВАТЬ:

Это должно сделать трюк:

Analytic
  .where(
    :created_at.gte => start_date,
    :created_at.lte => end_date
  ).pluck(
    :user_uuid
  ).map {
    |uuid| {
      "user_uuid" => uuid
    }
  }

Или чуть более читабельным:

Analytic.where(:created_at.gte => start_date, :created_at.lte => end_date).pluck(:user_uuid).map { |id| { "user_uuid" => id } }
0 голосов
/ 20 сентября 2019

Попробуйте это:

Analytic.select (: user_uuid) .where (: creation_at.gte => start_date,: creation_at.lte => end_date) .as_json

...