如何使用mongo C#2.0驱动程序执行$项目

时间:2015-08-21 09:46:43

标签: c# mongodb aggregation-framework

我在MongoDb中面临一个小问题。 我在mongo shell中有一个项目,如下所示:

{ $project: {
    "_id": 0,
    "ezBaseId": "$ezBaseId",
    "classificationId": "$_id.classificationId",
    "name": "$_id.name",
    "specification": "$_id.specification",
    "img": "$_id.img",
    "articles": "$articles",
    "supplier": "$_id.supplier"
}},

所以,我不是在这里使用1和0,而是在创建新属性来匹配另一个属性(用于在这里解包id字段)。

但是我很难在C#中创建它。

基本预测如下:

.Project(Builders<Root>.Projection.Combine(
    Builders<Root>.Projection.Exclude(x => x.Id),
    Builders<Root>.Projection.Include(x => x.EzBaseId)
));

如何在包含原始集合值的投影中添加名为“Demo”的字段?

亲切的问候

1 个答案:

答案 0 :(得分:1)

感谢@BlakesSeven,我自己设法找到了解决方案。 我和建筑商一起生活,但似乎在这种特殊情况下并不需要。

请参阅以下解决方案:

.Project(root => 
    new Root2 {
        ezBaseId = root.EzBaseId,
        classificationId = root.Id.ClassificationId,
        name = root.Id.Name,
        specification = root.Id.Specification,
        img = root.Id.Image,
        articles = root.Articles,
        supplier = root.Id.Supplier
    });

我需要从投影中构建一个新类型。

@Blakes:如果你想要一些声望,请发一个答案,以便我接受。