mongodb - mongo组查询如何保留字段

大家。 在 mongo 组查询中,结果仅显示参数中的键。如何保留每个组中的第一个文档,如 mysql 查询组。 例如:

-------------------------------------------------------------------------
|  name  | age  |  sex  | province |   city   |   area   |   address     |
-------------------------------------------------------------------------
| ddl1st | 22   | 纯爷们 |  BeiJing |  BeiJing | ChaoYang | QingNianLu    |
| ddl1st | 24   | 纯爷们 |  BeiJing |  BeiJing | XuHui    | ZhaoJiaBangLu |
|  24k   | 220  | ...   |  ....    |  ...     | ...      | ...           |
-------------------------------------------------------------------------



db.users.group({key: { name: 1},reduce: function ( curr, result ) { result.count ++ },initial: {count : 0 } })

结果:

[
{
    "name" : "ddl1st",
    "count" : 1
},
{
    "name" : "24k",
    "count" : 1
}
]

如何获得以下内容:

[
   {
   "name" : "ddl1st",
   "age" : 22,
   "sex" : "纯爷们",
   "province" : "BeiJing",
   "city" : "BeiJing",
   "area" : "ChaoYang",
   "address" : "QingNianLu",
   "count" : 1
   },
   {
   "name" : "24k",
   "age" : 220,
   "sex" : "...",
   "province" : "...",
   "city" : "...",
   "area" : "...",
   "address" : "...",
   "count" : 1
}
]

最佳答案

如果您想保留每个组的第一个匹配条目的信息,您可以尝试聚合如下:

    db.test.aggregate([{
      $group: {
         _id : '$name',
         name : { $first: '$name' },
         age : { $first: '$age' },
         sex : { $first: '$sex' },
         province : { $first: '$province' },
         city : { $first: '$city' },
         area : { $first: '$area' },
         address : { $first: '$address' },
         count : { $sum: 1 },
      }
    }]);

https://stackoverflow.com/questions/16662405/

相关文章:

python - flask 用户认证

node.js - 在 Mongoose 中填充后查询

mongodb - 如何使用 Homebrew 软件安装早期版本的 mongodb?

mongodb - 如何将 mongodump 用于 1 个集合

mongodb - Azure 表与 Azure 上的 MongoDB

mongodb - 你可以在 Mongo 中为 $addToSet 指定一个键吗?

mongodb - 如何在 MongoDB 中设置主键?

android - 安卓上的 MongoDB

mysql - MongoDB 与 MySQL

mongodb - 使用 mongoimport 将 json 从文件导入 mongodb