Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何聚合公共属性值的结果?_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 如何聚合公共属性值的结果?

Javascript 如何聚合公共属性值的结果?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我有一群拥有集团财产的人。组值是一个随机字符串,我在进行查询时不知道它。一些人的组值可能相同 我想写一个查询,每个组只检索一个人(在组中返回的那个人暂时不相关) 我想我必须写一些聚合。但我只读过关于已知值聚合的例子。。。相反,我需要对未知值进行聚合 我的模式类似于: const schemaPersons = new Schema({ name: { type: String, required: true, }, group: { type: String,

我有一群拥有
集团
财产的人。组值是一个随机字符串,我在进行查询时不知道它。一些人的
值可能相同

我想写一个查询,每个组只检索一个人(在组中返回的那个人暂时不相关)

我想我必须写一些聚合。但我只读过关于已知值聚合的例子。。。相反,我需要对未知值进行聚合

我的模式类似于:

const schemaPersons = new Schema({
  name: {
    type: String,
    required: true,
  },
  group: {
    type: String,
  },
};

您可以使用以下阶段编写聚合查询:

  • $group
    阶段,按
    group
    字段分组,并在
    person
    字段中仅获取第一人称的根文档

您可以使用stage编写聚合查询:

  • $group
    阶段,按
    group
    字段分组,并在
    person
    字段中仅获取第一人称的根文档

Persons.aggregate([
  {
    $group: {
      _id: "$group",
      person: { $first: "$$ROOT" }
    }
  }
]);