Mongodb Query,搜索文档内的数组元素分组并计算每个元素

假设我有一个包含多个文档的集合,其结构如下:


{

  _id: "id12345",

  objects: ["123","456", "789"]

}

现在我想创建一个查询,在其中传递对象数组并获取数组中每个元素在文档中的出现次数,如下所示:


查询输入:["123","321"] 输出:


{

  "123": 1,

  "321": 0

}

我只想通过一个查询来执行此操作,传递一个数组,我知道我可以一个接一个而不是一个数组轻松地做到这一点,但这不是目的。


慕哥6287543
浏览 201回答 2
2回答

慕容708150

一般来说,获得这一点的查询非常简单,因为不建议将值切换到数据层中的键,而是在表示层中切换更多。所以这:db.collection.aggregate([  {    $unwind: "$objects"  },  {    $group: {      _id: "$objects",      count: {        $sum: 1      }    }  }])会给你数字_id和一个count出现次数的字段。然后你可以在你的应用程序中按摩它,让它看起来像你想要的那样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java