簡體   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