Saya telah menghadapi masalah yang sama. Setelah debugging dalam kode MongoDB, saya melihat bahwa serializer yang berbeda diterapkan saat menggunakan antarmuka alih-alih tipe tertentu. Dalam hal ini, DiscriminatedInterfaceSerializer digunakan sebagai serializer untuk antarmuka, sedangkan BsonClassMapSerializer digunakan untuk tipe tertentu.
Dengan serializer ini untuk antarmuka, peta kelas dari kelas pelaksana tidak ditautkan ke antarmuka. Oleh karena itu tidak disadari bahwa Id adalah bidang id bson dan harus dipetakan ke kunci '_id'. Itu sebabnya pengecualian dimunculkan.
Solusi yang berhasil bagi saya adalah menggunakan ImpliedImplementationInterfaceSerializer :
[BsonSerializer(typeof(ImpliedImplementationInterfaceSerializer<IEntity, Entity>))]
public interface IEntity
{
// snip...
}
Atribut ini mendaftarkan serializer dan mendefinisikan untuk menggunakan peta kelas bson Entitas untuk IEntity sehingga properti Id akan dipetakan dengan benar. Saya menemukan solusi ini berkat @Robert Baker dalam jawabannya di sini:Deserialize objek sebagai antarmuka dengan MongoDB C# Driver