Bạn sẽ làm cách nào để sao chép sâu tài liệu trong MongoDB (mongoid)Tài liệu bản sao sâu với các liên kết được nhúng
Tôi đã thử một cái gì đó như thế này;
original = Car.find(old_id)
@car = original.clone
@car._id = BSON::ObjectId.new
Nhưng tôi gặp sự cố deserialization các giá trị sau đó.
Làm cách nào để tạo bản sao sâu với tất cả các thuộc tính của tài liệu ngoại trừ _id?
Chỉnh sửa: Sau khi làm theo ví dụ của Zachary, tôi gặp một số vấn đề với lớp tuần tự hóa tùy chỉnh cho các tài liệu được sao chép.
class OptionHash
include Mongoid::Fields::Serializable
# Convert the keys from Strings to Symbols
def deserialize(object)
object.symbolize_keys!
end
# Convert values into Booleans
def serialize(object)
object.each do |key, value|
object[key] = Boolean::MAPPINGS[value]
end
end
Đối tượng không có tài liệu trùng lặp. Car.find (old_id). Các thuộc tính thực sự không bao gồm trường với serialization tùy chỉnh, tại sao lại như vậy và làm thế nào tôi có thể đưa nó vào?
bạn có thể cụ thể hơn về các vấn đề không? – Barrie
Bạn có vấn đề gì sau này? –
Tôi đoán vấn đề là id của tài liệu được nhúng không được cập nhật. tức là xung đột với id của tài liệu được nhúng trong tài liệu gốc. – Yeggeps