Thật không may, không phải theo cách bạn đã làm với các trình điều khiển pymongo hiện tại. Như bạn đã tìm thấy, nếu bạn gặp lỗi trong insert_many()
của mình nó sẽ đưa ra một ngoại lệ và chi tiết ngoại lệ không chứa chi tiết của inserted_id
s.
Nó chứa thông tin chi tiết về các khóa bị lỗi (trong e.details['writeErrors'][]['keyValue']
) để bạn có thể thử và làm ngược lại từ danh sách sản phẩm ban đầu của mình.
Giải pháp khác của bạn là sử dụng insert_one()
trong một vòng lặp với thử ... ngoại trừ và kiểm tra từng chèn. Tôi biết cách này kém hiệu quả hơn nhưng đó là một cách giải quyết ...