Dokumentace odhaluje podpis odlišné metody:
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
)
Především se liší návratový typ a parametr options.
Zatímco ReplaceOne
vrátí ReplaceOneResult
, FindOneAndReplace
vrátí dokument (pozor na vlastnost ReturnDocument v možnostech).
ReplaceOptions
jsou dosti omezené ve srovnání s FindOneAndReplaceOptions kód>
, např. první neposkytuje třídění
vlastnost, která vám poskytne kontrolu nad tím, který dokument bude prvním z odpovídajících dokumentů v kolekci. Nezáleží na tom, zda filtrujete na základě ID, ale pokud chcete nahradit nejnovější dokument, je velmi užitečná možnost řazení.
(Poznámka na okraj:Já osobně najdu dokumentaci zde https:// docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ a zde https://docs.mongodb.com/manual/ reference/method/db.collection.findOneAndReplace/ mnohem užitečnější, protože podrobněji vysvětlují použití a poskytují také některé příklady. Ale nevím, jak blízko to odpovídá ovladači MongoDB C#.)