Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
mongoDB c#查询以返回按多个字段分组的文档的最新版本_C#_Mongodb_Mongodb Query_Mongodb .net Driver - Fatal编程技术网

mongoDB c#查询以返回按多个字段分组的文档的最新版本

mongoDB c#查询以返回按多个字段分组的文档的最新版本,c#,mongodb,mongodb-query,mongodb-.net-driver,C#,Mongodb,Mongodb Query,Mongodb .net Driver,我有以下收藏: { "name": "name 1", "type": 1, description: "desc 1", "version": 1} { "name": "name 1", "type": 1, description: "desc 1 updated","version": 2} { "name": "name 2", "type": 1, description: "desc 2", "version": 1} { "name": "name 2", "type": 1,

我有以下收藏:

{ "name": "name 1", "type": 1, description: "desc 1", "version": 1}
{ "name": "name 1", "type": 1, description: "desc 1 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2", "version": 1}
{ "name": "name 2", "type": 1, description: "desc 2 updated","version": 2}
每次需要添加具有相同“名称”和“类型”的新项目时,将创建一个新版本。例如,如果我需要添加:

 { "name": "name 2", "type": 1, description: "desc 2 updated again" }
然后,我更新的收藏将如下所示:

{ "name": "name 1", "type": 1, description: "desc 1", "version": 1}
{ "name": "name 1", "type": 1, description: "desc 1 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2", "version": 1}
{ "name": "name 2", "type": 1, description: "desc 2 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2 updated again","version": 3}
我想要实现一个查询,返回元素的最新版本,除非指定了特定版本

因此,默认情况下,查询应返回:

{ "name": "name 1", "type": 1, description: "desc 1 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2 updated again","version": 3}
{ "name": "name 1", "type": 1, description: "desc 1 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2 updated","version": 2}
或者如果我指定了一个版本,例如2,那么它应该返回:

{ "name": "name 1", "type": 1, description: "desc 1 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2 updated again","version": 3}
{ "name": "name 1", "type": 1, description: "desc 1 updated","version": 2}
{ "name": "name 2", "type": 1, description: "desc 2 updated","version": 2}
到目前为止,我已经达到了可以将计数按一个字段分组的程度:

_mongoDB.Collection.Aggregate()
                        .Match(filter)
                        .Group(new BsonDocument
                                {
                                    { "_id", "$name"}, 
                                    { "count", new BsonDocument("$sum", 1)}
                                });

到目前为止,我使用。

构建了过滤器。您尝试了哪些查询?这与此处讨论的top-N分组要求非常相似: