@Jason Cust 已经很好地解释了它-
在这种情况下,通常最好的解决方案是更改架构,以防止
Users通过存储在单独集合中的文档的属性进行查询。
不过,这是我能想到的最佳解决方案,不会强迫您这样做(因为您在评论中说不能)。
Users.find().populate({ path: 'email', match: { type: 'Gmail' }}).exec(function(err, users) { users = users.filter(function(user) { return user.email; // return only users with email matching 'type: "Gmail"' query });});
我们在这里所做的只是填充
match选项
.populate()),否则文档中的
Users将设置为
null。
剩下的全部都
.filter放在返回的
users数组上,就像在您最初的问题中一样-仅使用更简单,非常通用的检查。如您所见-
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)