2014-04-30 3 views
0

J'essaie d'obtenir un tableau de résultats d'une requête Mongoid similaire au SQL suivant;Comment obtenir les résultats d'une requête Mongoid

select field1, field2 from table; 

Les rendements suivants un des critères corrects, mais je dois les résultats

collection.only(:field1,:field2) 

Si je ne pas utiliser la méthode .seulement, je peux obtenir des résultats avec .to_a:

collection.all.to_a 

Mais si j'ajoute une méthode .to_a avec la méthode .only:

collection.only(:field1,:field2).to_a 

il renvoie une erreur "(Objet ne prend pas en charge #inspect)"

Cela semble assez basique, ai-je raté quelque chose?

Note intéressante, cette syntaxe fonctionne sur la console Mongodb;

db.collection.find({ }, { field1: 1, field2: 1 }) 

mais comment faire cela à partir de Mongoid?

+1

Avez-vous essayé 'table.only (: field1,: field2) .entries' – tirdadc

+0

Oui, semble se comporter comme to_a. – SteveO7

Répondre

1

je pense que vous cherchez Criteria#pluck

collection.pluck(:field1,:field2) 
+0

Cela fonctionne parfaitement! Je pensais avoir récuré la documentation à fond, mais j'ai raté "Pluck" :-) – SteveO7

+0

Mon pote de bienvenue: D –

Questions connexes