MongoDB с MongoID Извлечение нескольких полей в Find Query

Я пытаюсь написать несколько спокойных веб-API, у меня есть коллекция, называемая сообществом, и в ней около 10 полей. Но в моем вызове GetCommunityAPI я хочу передать только необходимую информацию на мобильное устройство.

Я ссылался на этот пример блога , это предложило следующий запрос MongoDB

$db->users->find({}, {username => 1});

Я написал свой монгоидный поиск как

@[email protected]({},{:username=>1})

Но это дает мне ошибку, что он не может найти действительный документ с идентификатором = {}

я тоже пробовал

@[email protected]({:username=>1})

Но вместо того, чтобы возвращать только имя пользователя, он возвращает все, что делает другое поле нулевым.

{"_id":"534186e5414fc34bc5000002","ad":null,"ae":null,"cat":null...and so on}

Мой вопрос в том, чтобы сделать вызовы API наиболее эффективными. потребляя наименьшее количество мобильных данных, можно ли отправить данные из MongoDB в следующем формате

{"_id":"534186e5414fc34bc5000002"}

Такой подход позволит всем моим API отправлять только достоверную информацию и будет поддерживать мобильную сеть. Поскольку я ожидаю около 1000 объектов за один вызов API.

Также возможно ли получить мой вывод в этом формате?

[{"_id":"534186e5414fc34bc5000002","un":"Name"},{"_id":"534186e5414fc34bc500000‌​3","un":"Dummy"}]

person Ronak Jain    schedule 14.04.2014    source источник
comment
checkout stackoverflow. ком/вопросы/7911014/   -  person prasad.surase    schedule 14.04.2014


Ответы (1)


Используя сам монго, он вернет null значений. Вы пытались использовать метод pluck в mongoid 3?

Collection.all.pluck(:username)
person Pierre-Louis Gottfrois    schedule 14.04.2014
comment
Спасибо, но это будет работать только для одного столбца. что, если мне нужно получить несколько столбцов ?? как [{"_id":"534186e5414fc34bc5000002","un":"Name"},{"_id":"534186e5414fc34bc5000003","un":"Dummy"}] . Я использую Rails 3 и Mongoid 3. - person Ronak Jain; 14.04.2014