繁体   English   中英

SetFields在Mongo C#驱动程序中

[英]SetFields in Mongo C# driver

我正在使用C#mongo驱动程序,我有如下的用户集合,

 public class User
{
    public string Name { get; set; }

    public DateField Date { get; set; }

    /*
     * Some more properties
     */

    public List<string> Slugs { get; set; } //I just need to return this property

}

我正在编写一个查询,它只返回slugs属性。 为此,我尝试使用mongo驱动程序中的SetFields(...)方法。 SetFields返回User类型的光标我希望某些东西是我的Slugs属性类型,这样当我只需要一个属性时我就不会返回整套属性。 可能吗 ?

是的,不是。 您可以使用聚合框架的投影运算符$project来更改数据的结构,但我不会这样做有两个原因:

  1. MongoDB通常会尝试保留结构,除非你强制使用它,特别是因为它可以更容易地使用静态类型语言(旧的对象/关系不匹配:SQL查询在用户或博客文章中没有“回答”,但有些狂野从各种表收集的属性的Chimaera,根据查询本身可能需要额外的DTO,这有点难看)。
  2. 聚合框架查询有点复杂,有点慢,我不会让做一些微优化的冲动决定了很多不必要的复杂性。

毕竟,省略几个字段已经是微优化(设置索引覆盖查询除外),但在客户端,空字段的成本应该几乎没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM