我需要在mongodb集合上执行聚合 . 我遇到的问题是我需要在组函数中执行OR运算 .
我的文档有不同的值键,理想情况下它们应该是相同的 . 我坚持使用这些值,所以我不能只是规范化数据 .
例如,该集合为电子邮件字段提供了三个不同的字段值:
{
_id : 1,
name : "docType1",
e_mail : "joe@example.com"
}
{
_id : 2,
name : "docType2",
email : "joe@example.com"
}
{
_id : 3,
name : "docType3",
mail : "joe@example.com"
}
一旦密钥是e_mail,电子邮件或邮件,是否可以执行按电子邮件值对文档进行分组的组功能?
也许它可能与一个项目相结合,但到目前为止我的尝试都没有成功,我想我还需要一个OR吗?
1 回答
是的,aggregation framework是可能的 . 您基本上需要使用$ifNull运算符进行测试,并以嵌套形式使用第二个条件:
所以
$ifNull
有两个参数,第一个是要测试的字段,它返回的位置存在或不为空,第二个是在条件不是true
的情况下返回的备用值 .