这是我的问题:
db.getCollection('design_ideas').aggregate(
{ $match : {'Deals.URL': 'warm-up-with-white'}},
{ $unwind : '$Deals' },
{ $match : {'Deals.URL': 'warm-up-with-white'}},
{$group: {_id : '$Deals.URL', Deals: {$addToSet: '$Deals'}}}
)
C中的相同查询:
_mongoDB.GetCollection<DesignCategoryMongoModel>("design_ideas")
.Aggregate()
.Match(BsonDocument.Parse("{'Deals.URL': 'warm-up-with-white'}"))
.Unwind("Deals")
.Match(BsonDocument.Parse("{'Deals.URL': 'warm-up-with-white'}"))
.Group(BsonDocument.Parse("{_id : '$Deals.URL', Deals: {$addToSet: '$Deals'}}"))
.FirstOrDefault();
查询的结果是一个具有以下结构的文档:
{
_id: 'url',
Deals: [{
DealId: 1,
Name: 'Name',
Products: [...]
...
}]
}
我知道在deals结果数组中,我总是只得到一个
Deal
对象。我的C类:
public class Deal
{
public int DealId {get; set;}
public string Name {get; set;}
public IEnumerable<Product> Products {get; set;}
}
我的问题是如何将result
Json
投影到强c类型,并且是唯一一个deal对象(不是数组)的存在方式? 最佳答案
你可以用BsonSerializer来做这个
var MyDeals = BsonSerializer.Deserialize<List<Deal>>(aggregationResult);
关于c# - C#Mongodb。将Json项目分组后改为强类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40030736/