HI 语句的写法TJ已经给出建议了。
针对unwind的性能问题,确实,如果是对十分庞大的数据量进行unwind,性能消耗不会小。
但是在你的查询之初会进行match吧?应该是对于100W中该班级学生的数据进行unwind,故match走index后返回的documents就极少了,算一个班级100个人好了,这时候unwind的数据就不多了。
如果需要对巨量数据进行unwind,这时候就应该反省,这个需求这种写法是否正确,可能在数据结构的设计之初未将该需求考虑进去,那么如果要求性能,则需要对数据结构进行修改,或者变相实现了。
Mongodb的数据结构最好是跟着业务与查询走,最贴合业务与查询的数据结构则是最优的。
感谢eshujiushiwo的回答,问题就在于此,我一直在纠结是跟着查询方便性和性能性而设计数据结构较好,还是随着真实业务走设计较好,如果跟着真实业务设计就会出现unwind的问题,这个很让人头疼。。。