Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Node.js 猫鼬如何分组_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 猫鼬如何分组

Node.js 猫鼬如何分组,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,假设我有一个具有字段名的集合,并且只有Sally和Bob的名称存在。我想按此值对结果进行分组。我当前正在获取结果,然后使用下划线执行分组。但我应该可以用一个集合来做这件事。 下面是我的代码 const names = ['Bob', 'Sally']; const docs = Collection.find({name: { $in: names}}, { fields: { name:1, age:1}, sort: { name:-1 } }).fetch(); //How

假设我有一个具有字段名的集合,并且只有Sally和Bob的名称存在。我想按此值对结果进行分组。我当前正在获取结果,然后使用下划线执行分组。但我应该可以用一个集合来做这件事。 下面是我的代码

  const names = ['Bob', 'Sally'];
  const docs = Collection.find({name: { $in: names}}, { fields: { name:1, age:1}, sort: { name:-1 } }).fetch();

  //How can I do this part in the query above
  const { Bob, Sally } = _.groupBy(docs, "name");

您可以这样做:

db.collection.aggregate([
  {
    $match: {
      name: {
        $in: names
      }
    }
  },
  {
    $group: {
      "_id": "$name",
      age: {
        $first: "$age"
      }
    }
  },
  {
    $sort: {
      name: -1
    }
  }
])

请在此处尝试:

您可以执行以下操作:

db.collection.aggregate([
  {
    $match: {
      name: {
        $in: names
      }
    }
  },
  {
    $group: {
      "_id": "$name",
      age: {
        $first: "$age"
      }
    }
  },
  {
    $sort: {
      name: -1
    }
  }
])
在这里试试:

你可以试试

美元符合你的条件 $group by name和make array调用字段并推送名称和年龄 $sort by_id表示名称 $replaceWith替换根目录中的对象,$arrayToObject将k,v格式转换为对象 你可以试试

美元符合你的条件 $group by name和make array调用字段并推送名称和年龄 $sort by_id表示名称 $replaceWith替换根目录中的对象,$arrayToObject将k,v格式转换为对象
表示您在谈论哪些字段?它不允许按对象字段数组排序,但您可以在$group之前执行$sort。当您使用$replaceRoot:{newRoot:{….}时,两者的工作原理相同。请看。您在mongodb驱动程序中使用的是哪种方法?如果我没有错,请看这个。验证管道阶段,在游乐场中,我已更改,在您的错误中,$arraToObject没有获取对象的k和v格式数组。这意味着您正在谈论哪些字段?它不允许按对象字段数组排序,但您可以在$group之前执行$sort。当您使用$replaceRoot:{newRoot:{….}时,这两种方法的工作原理相同。请看。您在mongodb驱动程序中使用的是哪种方法?如果我没有弄错的话,请看这个。请验证管道阶段,在Playerd中,我已更改,并且在您的错误中$arraToObject未获取对象的k和v格式数组。