使用来自源的所有数据按字段分组创建MongoDB视图

时间:2018-12-10 14:08:20

标签: mongodb

背景

我正在使用MongoDB 4.x,并以这种方式将数据写入集合“人”:

{ "_id" : .., "firstName" : "John", "lastName": "Doe", "department" : "A" }

我想创建一个view,基本上按部门将所有人分组。即我希望视图包含这样的文档:

{ "department" : "A", persons: [{ "_id" : .., "firstName" : "John", "lastName": "Doe", "department" : "A" }, { "_id" : .., "firstName" : "Jane", "lastName": "Doe", "department" : "A" }, ..] }

目的是稍后查询此视图,并且仅返回具有人员(即persons数组不为空)的部门。我估计在我的情况下,生成的视图中将有数十万个“部门”。

问题:

  1. 我该如何实现?
  2. 鉴于我在“人”集合中的“部门”上有一个索引,在查询视图时是否还需要考虑其他因素以实现最佳性能?
  3. 与使用聚合框架相比,使用视图是否会带来性能损失(或优势?),并且在“人员”集合中手动执行“ groupBy部门”吗?

0 个答案:

没有答案