【问题标题】:passing many fields to next stage in aggregation pipeline将许多字段传递到聚合管道中的下一阶段
【发布时间】:2018-10-25 09:35:21
【问题描述】:

请让我知道下面 MongoDB 查询的 C# 等效项。它在 Robo3T for MongoDB 中运行良好

db.UserProfile.aggregate([          
    {
      $project: {
         SName:1,
         FName:1,
         DemRole: {
            $filter: {
               input: "$DemRole",
               as: "item",
               cond: { $eq: [ "$$item.Name", "FO" ] }
            }
         }
      }
   }
])

【问题讨论】:

  • 能否请您发布 C# 实体?
  • 您能解释一下您所说的 C# 实体是什么意思吗?
  • 我指的是您的代码包含的类型/类。暴露SNameFNameDemRole 属性的那些。

标签: c# mongodb aggregation-framework


【解决方案1】:

我可以通过下面的 C# 代码实现这一点

var stage1 = "{ $project: { SName: 1, FName: 1, DemRole: { $filter: { input: '$DemRole', as: 'item', cond: { $eq: ['$$item._id', '5bc49241f12541c3aaa098ee'  ] } } } } }";


                var query = collection.Aggregate(new AggregateOptions() { AllowDiskUse = true })

                            .AppendStage<BsonDocument>(stage1).ToEnumerable();



                return query?.Select(point => BsonSerializer.Deserialize<RetUserProfile4Role>(point)).ToList();

【讨论】:

    猜你喜欢
    • 2019-03-03
    • 2019-06-03
    • 2020-05-28
    • 1970-01-01
    • 2020-10-16
    • 2021-12-21
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多