2012-09-25 16 views
5

BSON::ObjectId türünden oluşan bir dizim var ve bazı kimliklere karşı dizelerle karşılaştırılmasını istiyorum. Dize kimliğini BSON :: ObjectId ile karşılaştırın

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 

Bu

tipleri, farklı benim dize bir BSON::ObjectId dönüşebilir gibi çalışmıyor? Öyleyse nasıl?

10gen sürücüsü ile

cevap

11

Mongoid 2.x:

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

Mongoid 3:

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

Mongoid 4 (moped)/Mongoid 5 (Mongo):

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

kaydı sildi BSON :: ObjectId.from_string ('506144650ed4c08d84000001')' fakat birlikte Mongoid 4 üzerinde "Moped". – Dex

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

Bu benim için çalıştı ve `= Bu benim için oid çalışıyor başarıyla veritabanından