gpt4 book ai didi

mongodb c# API V2 : Difference between ReplaceOne and FindOneAndReplace

转载 作者:可可西里 更新时间:2023-11-01 10:22:59 28 4
gpt4 key购买 nike

查看 mongodb 文档,我读到 FindOneAndReplace 将是一个原子操作。但我不明白的是为什么 ReplaceOne 不会是原子的?如果存在差异,为什么还要使用 ReplaceOne?

最佳答案

文档揭示了一个不同的方法签名:

ReplaceOne :

ReplaceOneResult ReplaceOne(
FilterDefinition<TDocument> filter,
TDocument replacement,
ReplaceOptions options = null,
CancellationToken cancellationToken = null
)

FindOneAndReplace :

TProjection FindOneAndReplace<TProjection>(
FilterDefinition<TDocument> filter,
TDocument replacement,
FindOneAndReplaceOptions<TDocument, TProjection> options = null,
CancellationToken cancellationToken = null
)

最值得注意的是返回类型和选项参数不同。

虽然 ReplaceOne 返回 ReplaceOneResult , FindOneAndReplace 返回文档(注意选项中的 ReturnDocument 属性)。

ReplaceOptionsFindOneAndReplaceOptions 相比相当有限,例如前者不提供 sort 属性来让您控制哪个文档将成为集合中第一个匹配文档。如果您根据 ID 进行过滤,这无关紧要,但如果您想要替换最新文档,则排序选项非常有用。

(旁注:我个人认为此处的文档 https://docs.mongodb.com/manual/reference/method/db.collection.replaceOne/ 和此处的 https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndReplace/ 更有帮助,因为它们更详细地解释了用法并提供了一些示例。但我不知道它与MongoDB C# 驱动程序。)

关于mongodb c# API V2 : Difference between ReplaceOne and FindOneAndReplace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36895238/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com