2017-03-21 7 views
0

Ich bin neu in MongoDB und Datenbanken im Allgemeinen. Ich verwende Ruby und möchte eine bestimmte UUID in der Datenbank abfragen.Ruby Mongo DB mehrere Datensätze mit dem gleichen Wert

ist die ID als _id gespeichert und der Wert ist '101b437a-be16-44f6-b0b0-0201cdee6510'

Ich habe folgendes, dass meine Datenbank in der Regel fragt:

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) 

Ende

Wenn ich in das Feld _id schaue, gehe ich davon aus, dass es als eine Art binärer Schlüssel gespeichert ist und daher nicht mit meiner Suche gefunden wird.

Gibt es eine Konvertierung, die ich tun könnte/sollte, um die obige Abfrage zu funktionieren?

Vielen Dank.

Antwort

1

Mit einem ODM wie Mongoid werden Sie Ihre Schmerzen lindern. Fügen Sie es zu Ihrem Gemfile:

gem 'mongoid' 

und laufen bundle install. Stellen Sie sicher, dass Sie die Installationsanleitung überflogen haben, um alle notwendigen Konfigurationen hinzuzufügen. Dann schließen Sie die folgende Zeile zu Ihrem Modell/Klasse, sagen:

class Product 
    include Mongoid::Document 
    ... 
end 

Sie der Lage sein werden die Datensätze wie Product.find(id) direkt nach abzufragen.

+0

Die Dokumente langsam durchlaufen, nicht ganz bekommen – Tom

+0

Haben Sie versucht, [Mongoid Installation Docs] (https://docs.mongodb.com/ruby-driver/master/tutorials/6.1.0/mongoid-installation /)? – dskecse

+0

Hallo, ich habe gesucht und um ehrlich zu sein, ich bin mir nicht sicher, ob ich den richtigen Weg für den Test gehen würde. Ich bohrte in den Event Store, der nicht ideal ist. Ich habe jedoch begonnen, MongoID für meine Tests zu verwenden. Danke für die heads up – Tom

Verwandte Themen