如何在MongoDB中使用collection.Aggregate.Project()?

亚历克斯·G。

考虑以下代码:

var results = collection.Aggregate()
...
.Lookup( ... )
.Project( ??? );

我需要在上面的查询中调用Project()。我还无法弄清楚如何构建type的投影定义ProjectionDefinition<T1, T2>,这是Project()所需要的。

在这种情况下,Builders类似乎不起作用:

var projection = Builders<Event>.Projection.Include(x => x).Include("agg_res.SomeField");

实例化type的定义ProjectionDefinition<T>

亚历克斯·G。

我找到了答案。聚合可以使用不同的Lookup()重载同时执行查找和投影:

var results = collection.Aggregate()
            .Match(filter)
            .Lookup<Event, User, AggregatedEvent>(users, e => e.OwnerId, u => u.Id, r => r.OwnerUsers)
            .ToList();

这允许使用lambda来指示应匹配的字段以及将联接结果放置在何处(上例中的OwnerUsers)。请注意,AggregatedEvent扩展了Event并包括一个名为OwnerUsers的数组字段。这是放置比赛的地方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Aggregate()查询的Group和Project的MongoDb C#驱动程序给出异常

如何在Android Project中使用ThreeTenABP

如何在NodeJS回调中获取MongoDB的collection.aggregate()结果?

如何在$ project中的$ toString中使用MongoDB上的子文档字段?

如何在mongodb中使用$ project在数组中显示特定字段

.aggregate()中使用的Django @property

使用 where in lookup(aggregate) mongodb

MongoDB结果集Aggregate()

在 Mongodb 中使用 .aggregate 相当于 findOne 什么?

在MongoDB中使用Aggregate函数进行除法和除法

使用ʻaggregate`合并地图

如何在MongoDb .aggregate()中的$ lookup中添加条件?

Find text in array of object and return only relevant items (aggregate & project)

如何在React-Project中使用CDN导入

如何在Electron Js Project中使用母版页

在MongoDB中使用$ project转换日期

如何使用Mongodb Aggregate框架填充数据?

MongoDB:使用 $filter(aggregate) 过滤子数组

如何在Project 2中使用Project 1中的功能?

如何在 Laravel 5.2 中使用 project_id 打印 project_name

对“ aggregate”命令使用“ for”循环吗?

AddField 使用 Aggregate 的对象数组

如何使用多个匹配值将 Collection.find() 转换为 Collection.aggregate()?

R如何在dcast中使用fun.aggregate在扩大数据帧时保持离散值?

用find()/ aggregate()引用MongoDB索引

MongoDB在.aggregate()中生成重复项

Filter an object after a populate in MongoDB without aggregate

MongoDB Aggregate与特定字段不匹配

在 COLLECT 中使用 INTO,同时也使用 AGGREGATE。可以做到吗?