2012-09-25 11 views
5

Mam tablica składa się z typu BSON::ObjectId i chcę go porównać z niektórych identyfikatorów jako ciągi.Porównaj identyfikator ciągu do BSON :: ObjectId

if my_array_of_BSON_ObjectIds.include?(@my_id_as_a_string) 
    # delete the item from the array 
else 
    # add the item to the array as a BSON::ObjectId 
end 

To nie działa jak typy są różne, mogę włączyć mój ciąg do BSON::ObjectId? Jeśli tak to jak?

Odpowiedz

11

Mongoid 2.x sterownika 10gen to:

BSON::ObjectId.new('506144650ed4c08d84000001') 

Mongoid 3 z osuszanym:

Moped::BSON::ObjectId.from_string('506144650ed4c08d84000001') 

Mongoid 4 (motorowery)/Mongoid 5 (Mongo)

BSON::ObjectId.from_string('506144650ed4c08d84000001') 
+3

Działa to dla mnie oid = 'BSON :: ObjectId.from_string ('506144650ed4c08d84000001'), ale nie z' 'Motorower' na Mongoid 4. – Dex

0
collection.delete_one({"_id"=>BSON::ObjectId(params['id'])}) 

Ten pracował dla mnie i to usunięty rekord z bazy danych pomyślnie

Powiązane problemy