2012-09-25 33 views
5

Tôi có một mảng gồm một loại BSON::ObjectId và tôi muốn nó so sánh với một số ID dưới dạng chuỗi.So sánh chuỗi ID với 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 

Đây không phải đang làm việc như các loại khác nhau, tôi có thể biến chuỗi của tôi vào một BSON::ObjectId? Nếu vậy, làm thế nào?

Trả lời

11

2.x Mongoid với tài xế 10gen của:

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

Mongoid 3 với xe máy:

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

Mongoid 4 (scooter)/Mongoid 5 (Mông Cổ):

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

này làm việc cho tôi oid = 'BSON :: ObjectId.from_string ('506144650ed4c08d84000001')' nhưng không phải với 'Moped' trên Mongoid 4. – Dex

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

này làm việc cho tôi và nó xóa dữ liệu từ cơ sở dữ liệu thành công

Các vấn đề liên quan