我有一个由BSON::ObjectId
类型组成的数组,我希望它能将某些ID作为字符串进行比较。
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
由于类型不同,这不起作用,我可以将字符串转换为BSON::ObjectId
吗?如果是这样,怎么样?
答案 0 :(得分:12)
Mongoid 2.x与10gen的驱动程序:
BSON::ObjectId.new('506144650ed4c08d84000001')
带有轻便摩托车的Mongoid 3:
Moped::BSON::ObjectId.from_string('506144650ed4c08d84000001')
Mongoid 4(轻便摩托车)/ Mongoid 5/6/7(mongo):
BSON::ObjectId.from_string('506144650ed4c08d84000001')
答案 1 :(得分:5)
您可以使用BSON::ObjectId(@my_id_as_a_string)
将您的ID表示为BSON::ObjectId
引用http://api.mongodb.org/ruby/current/BSON.html#ObjectId-class_method
答案 2 :(得分:0)
collection.delete_one({"_id"=>BSON::ObjectId(params['id'])})
这对我有用,它成功删除了数据库中的记录