使用聚合查询删除mongodb中的重复项

尼克皮克
db.games.aggregate([ 
{ $unwind : "$rounds"},
{ $match: {
 "rounds.round_values.gameStage": "River",
 "rounds.round_values.decision": "BetPlus" }
 },
 { $project: {"FinalFundsChange":1, "GameID":1}
    }])

结果输出为:

{ "_id" : ObjectId("57cbce66e281af12e4d0731f"), "GameID" : "229327202", "FinalFundsChange" : 0.8199999999999998 }
{ "_id" : ObjectId("57cbe2fce281af0f34020901"), "FinalFundsChange" : -0.1599999999999997, "GameID" : "755030199" }
{ "_id" : ObjectId("57cbea3ae281af0f340209bc"), "FinalFundsChange" : 0.10000000000000009, "GameID" : "231534683" }
{ "_id" : ObjectId("57cbee43e281af0f34020a25"), "FinalFundsChange" : 1.7000000000000002, "GameID" : "509975754" }
{ "_id" : ObjectId("57cbee43e281af0f34020a25"), "FinalFundsChange" : 1.7000000000000002, "GameID" : "509975754" }

如您所见,最后一个元素是重复元素,这是因为展开会为其创建两个元素,而这两个元素应该都应如此。我如何(在保持查询的聚合结构的同时)仅保留重复项的第一个元素或仅保留重复项的最后一个元素?

我已经看到,执行此操作的方法似乎与$ addToSet或$ setUnion有关(也完全了解其工作原理的任何详细信息),但是我不明白如何选择“子集”想要确定重复项(在我的情况下是“ GameID”,允许其他值不同)以及如何选择要第一个还是最后一个元素。

Tengobash

您可以通过能集团_id通过$group再使用$last$first运营商分别保持最后一个或第一个值。

db.games.aggregate([ 
{ $unwind : "$rounds"},
{ $match: {
 "rounds.round_values.gameStage": "River",
 "rounds.round_values.decision": "BetPlus" }
 },
 { $group: { 
     _id: "$_id", 
     "FinalFundsChange": { $first: "$FinalFundsChange" }, 
     "GameID": { $last: "$GameID" }
   }
 }
])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在MongoDB中删除重复项

来自分类Dev

如何在 MongoDB Compass 社区中使用 MongoDB 聚合删除重复项

来自分类Dev

重复时从查询中删除重复项

来自分类Dev

如何使用mongoose(NodeJS)删除mongoDB中的重复项

来自分类Dev

如何从UNION查询中“删除重复项”

来自分类Dev

从查询结果中删除重复项

来自分类Dev

SQL从查询结果中删除重复项

来自分类Dev

如何从UNION查询中“删除重复项”

来自分类Dev

从单列电源查询中删除重复项

来自分类Dev

删除 CONNECT BY LEVEL 查询中的重复项

来自分类Dev

从选择查询中删除重复项

来自分类Dev

如何从MongoDB集合中删除重复项

来自分类Dev

预聚合子查询sql中的重复项

来自分类Dev

SSIS中的聚合转换与排序(删除重复项)

来自分类Dev

SSIS中的聚合转换与排序(删除重复项)

来自分类Dev

SAPUI5 删除聚合绑定中的重复项

来自分类Dev

从MongoDB查询结果中删除重复的对象

来自分类Dev

MongoDB查询以从集合中删除重复的文档

来自分类Dev

$ addToSet中的聚合重复项

来自分类Dev

使用Node JS在MongoDb中聚合查询

来自分类Dev

在MongoDB聚合中$ unwind之后删除重复的键

来自分类Dev

使用Distinct删除列表中的重复项

来自分类Dev

使用js删除链表中的重复项

来自分类Dev

查询以GROUP BY删除重复项

来自分类Dev

如何在不使用Distinct的情况下删除SQL查询中的重复项?

来自分类Dev

Postgres查询使用Knex删除多个连接数组中的重复项

来自分类Dev

如何在H2中使用一个查询删除重复项

来自分类Dev

如何删除MongoDB中聚合查询返回的文档

来自分类Dev

连接Postgres查询中的结果集,并删除重复项

Related 相关文章

热门标签

归档