gpt4 book ai didi

c# - 服务器端投影

转载 作者:行者123 更新时间:2023-12-04 15:55:28 25 4
gpt4 key购买 nike

我正在使用 C# MongoDB 驱动程序。在关于 Lambda Expressions Projection 的官方文档中,他们说:

The driver supports using expression trees to render projections.
Inherently, a lambda expression contains all the information necessary to form both the projection on the server as well as the client-side result and requires no further information.

之后的几行,我们有:

When a Find projection is defined using a lambda expression, it is run client-side.

现在我对 Lambda 表达式 投影端有点困惑。它运行在服务器端还是客户端?

当我使用 .Include().Exclude() 方法投影文档时,它是创建服务器端投影还是客户端投影?例如,如果我过滤一个 Post 文档并且我想用 .Exclude() 方法排除它的 tags 字段,驱动程序是否获取整个文档,然后排除应用程序中的 tags 字段,或者它发出带有 { tags: 0 } 投影的 Mongodb find() 请求?

当我想查找时,Lambda 表达式 投影和使用 .Include().Exclude() 投影文档有什么区别并在投影方面投影一些文件?

谢谢。

最佳答案

在启用了完整详分割析的示例数据库上对两种类型的投影进行了一些研究和检查后,我发现两者 .Exclude().Include()(使用 Projection Builder),以及在服务器端。我仍然不知道这些投影之间有什么区别 - 正如官方文档所说,但我解决了我的问题,现在我确定主要投影部分是在服务器端完成的。

这里是我对两种不同类型的驱动程序提供的预测的研究结果(使用 hte 示例数据库和显示的分析结果的有用部分):

投影使用表达式: Projection using **Expression**

使用 Projection Builders 进行投影 (.Include() .Exclude()): Projection using **Projection Builders (<code>.Include()</code> <code>.Exclude()</code>)**


看来我现在只能使用链接到图片(缺乏声誉!)。
我使用过的有用文档的链接可在评论中找到。
我希望这会有所帮助。

关于c# - 服务器端投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51889238/

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