Dokumentasi mengungkap tanda tangan metode yang berbeda:
ReplaceOneResult ReplaceOne(
FilterDefinition<TDocument> filter,
TDocument replacement,
ReplaceOptions options = null,
CancellationToken cancellationToken = null
)
TProjection FindOneAndReplace<TProjection>(
FilterDefinition<TDocument> filter,
TDocument replacement,
FindOneAndReplaceOptions<TDocument, TProjection> options = null,
CancellationToken cancellationToken = null
)
Terutama jenis pengembalian dan parameter opsi berbeda.
Sementara ReplaceOne
mengembalikan ReplaceOneResult
, FindOneAndReplace
mengembalikan dokumen (perhatikan properti ReturnDocument di opsi).
ReplaceOptions
agak terbatas dibandingkan dengan FindOneAndReplaceOptions
, misalnya yang pertama tidak memberikan sort
properti untuk memberi Anda kendali atas dokumen mana yang akan menjadi dokumen pertama yang cocok dalam koleksi. Ini tidak masalah jika Anda memfilter berdasarkan ID, tetapi jika Anda ingin mengganti dokumen terbaru, opsi pengurutan sangat berguna.
(Catatan tambahan:Saya pribadi menemukan dokumentasi di sini https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ dan di sini https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ jauh lebih membantu, karena mereka menjelaskan penggunaan secara lebih rinci dan juga memberikan beberapa contoh. Tapi saya tidak tahu seberapa miripnya dengan driver MongoDB C#.)