【发布时间】:2018-09-25 07:05:36
【问题描述】:
所以我有一个要查询/汇总的集合。查询由几个部分组成,这些部分是 OR'ed 在一起的。对于查询的每个部分,我都有一组需要显示的特定字段。
所以我希望用一个聚合来做到这一点,这将 $match 查询 OR'ed 一起一次,然后使用 $project 和 $cond 查看需要哪些字段。这里的问题是$cond 使用表达式,而$match 使用查询。这是一个问题,因为某些查询功能不能作为表达式使用。因此,简单的转换不是一种选择。
所以我需要另一个解决方案.. - 我可以对每个单独的查询进行聚合,因为我知道要匹配哪些字段,然后它们将结果合并在一起。但是,如果我在查询中使用分页(限制/跳过等),这将不起作用。 - 找到其他方法来标记每个文档,以便我可以(之后)删除任何不需要的字段。它可能不是超级有效,但会起作用。还不知道怎么做 - 找出一种方法来进行仅由表达式组成的查询。出于我的目的,这可能已经足够好了,这将意味着重写查询解析器。它可以工作,但并不理想。
【问题讨论】:
-
什么代码?我猜只是几行聚合代码不会真正帮助任何人..
标签: mongodb mongodb-query