Javascript mongodb:如果字段不为空,则分组并计数,否则显示零
我在mongodb中有数千个文档,我必须按groupId对它们进行分组,如果groupId存在且不为空,则对它们进行计数。如果该字段有空值,则结果应在计数中显示0。下面是示例文档Javascript mongodb:如果字段不为空,则分组并计数,否则显示零,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我在mongodb中有数千个文档,我必须按groupId对它们进行分组,如果groupId存在且不为空,则对它们进行计数。如果该字段有空值,则结果应在计数中显示0。下面是示例文档 { “_id”:ObjectId(“5e706eb075658f3af3a61694”), “名称”:“子文档1”, “电子邮件”:abcd@yopmail.com", “组ID”:对象ID(“5e70708775658f3af3a61695”), “createdAt”:ISODate(“2020-03-17T12
{
“_id”:ObjectId(“5e706eb075658f3af3a61694”),
“名称”:“子文档1”,
“电子邮件”:abcd@yopmail.com",
“组ID”:对象ID(“5e70708775658f3af3a61695”),
“createdAt”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“更新日期”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“_v”:0
},
{
“_id”:ObjectId(“5e706eb075658f3af3a61694”),
“名称”:“子文档2”,
“电子邮件”:abcd@yopmail.com",
“组ID”:对象ID(“5e70708775658f3af3a61695”),
“createdAt”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“更新日期”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“_v”:0
},
{
“_id”:ObjectId(“5e706eb075658f3af3a61694”),
“名称”:“子文档3”,
“电子邮件”:abcd@yopmail.com",
“组ID”:对象ID(“5e70708775658f3af3a61695”),
“createdAt”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“更新日期”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“_v”:0,
},
{
“_id”:ObjectId(“5e70708775658f3af3a61695”),
“名称”:“上级单据”,
“电子邮件”:abcd@yopmail.com",
“groupId”:空,
“createdAt”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“更新日期”:ISODate(“2020-03-17T12:01:12.525+05:30”),
“_v”:0
}
当groupId为null时,可以为groupId设置一个默认值,该默认值不得与具有null groupId的其他元素相同。
您可以使用$ifNull完成此操作
并在groupId中设置类似于文档id的内容。在此之后,可以对元素进行分组。
如果groupId与id相同,则可以在计数中设置零