2017-03-21 2 views
0

Je suis nouveau à MongoDB et les bases de données en général. J'utilise Ruby et j'aimerais interroger un UUID spécifique dans la base de données.Ruby Mongo DB enregistrements multiples de même valeur

L'ID est stockée sous forme _id et la valeur est '101b437a-be16-44f6-b0b0-0201cdee6510'

Je suit que les requêtes habituellement ma base de données:

field = '_id:' 
    value = 101b437a-be16-44f6-b0b0-0201cdee6510 

    def query_field(field,value) 
    query = {#{field}: value} 

    @result = @mongo_interface.get(query) 
    expect(@result.count).to be >= 1 
    puts "Number of matched values: #{@result.count}" 

end 


def get(param_hash, collection_name = nil) 
    col_name = (collection_name.nil? || collection_name.empty?) ? @collection : collection_name 
@docs = @db[col_name].find(param_hash) 

fin

Quand je regarde dans le champ _id, je suppose qu'il est stocké comme une sorte de clé binaire et donc n'est pas trouvé en utilisant ma recherche.

Y at-il une conversion que je pourrais/devrais faire pour que la requête ci-dessus fonctionne?

Merci.

Répondre

1

L'utilisation d'un ODM tel que Mongoid atténuera votre douleur. Ajoutez à votre Gemfile:

gem 'mongoid' 

et exécuter bundle install. Assurez-vous de parcourir le guide d'installation pour ajouter toutes les configurations nécessaires. comprennent la ligne suivante à votre modèle/classe, disent:

class Product 
    include Mongoid::Document 
    ... 
end 

Vous serez en mesure d'interroger les dossiers comme Product.find(id) juste après.

+0

Parcourir les documents lentement, ne pas les obtenir entièrement – Tom

+0

Avez-vous essayé de parcourir [Document d'installation de Mongoide] (https://docs.mongodb.com/ruby-driver/master/tutorials/6.1.0/mongoid-installation /)? – dskecse

+0

Salut, j'ai regardé et pour être honnête, je ne suis pas sûr d'être sur la bonne voie pour le test. Je forais dans le magasin d'événements qui n'est pas idéal. J'ai cependant commencé à utiliser MongoID pour mes tests. Merci pour le heads up – Tom