Mongodb按一列多值排序

Mongodb按一列多值排序,mongodb,Mongodb,我正在使用node.js Express,mongo db数据库,我遇到了以下问题 在数据库中,post集合有一个名为“”的列,其类型为数组。 如果用户已看到该帖子,“seen_by”数组将包含其用户id。 现在我必须在帖子收集中获取数据,在看到的帖子之后列出用户未看到的帖子 现在我的问题是如何用mongodb中的两个不同值对一个克隆进行排序 例如: 发布id:10,名称:test,发布日期:2020年10月14日,查看人:Array,0:10 发布id:11,名称:test1,发布日期:202

我正在使用node.js Express,mongo db数据库,我遇到了以下问题

在数据库中,post集合有一个名为“”的列,其类型为数组。
如果用户已看到该帖子,“seen_by”数组将包含其用户id。
现在我必须在帖子收集中获取数据,在看到的帖子之后列出用户未看到的帖子

现在我的问题是如何用mongodb中的两个不同值对一个克隆进行排序

例如:

  • 发布id:10,名称:test,发布日期:2020年10月14日,查看人:Array,0:10
  • 发布id:11,名称:test1,发布日期:2020年10月15日,查看人:Array,0:10
  • 发布id:15,名称:tabf,发布日期:2020年9月14日,查看人:数组,0:1
  • 发布id:20,名称:userTest,发布日期:2020年10月14日,查看人:Array,0:10
  • 如果现在登录用户id为1,则输出应如下所示: 1) 邮政编码:10,。。。。 2) 邮政编码:11,。。。。 3) 邮政编码:20,。。。 4) 邮政编码:15


    如何在Mongo db中获得上述响应???

    您可以使用聚合函数。
    首先投影一个字段,表示用户是否看到文章。
    然后排序,您可以在MongoDB排序中指定多个字段,顺序表示排序条件


    这是示例

    您能告诉我什么是“$project”?$project意味着选择您想要的字段或设置添加字段。如果您不熟悉这些命令,最好查看非常清晰的文档。还可以看看如何进行用户聚合,它是超级强大的