繁体   English   中英

MongoDb Driver 2.0 C#Filter和Aggregate

[英]MongoDb Driver 2.0 C# Filter and Aggregate

我正在玩mongodb 2.0的新驱动程序,并寻找添加一些分面搜索(临时移动,使用弹性搜索之前)。

这是我创建的一些方法来构建agreggation。 我猜它应该有效。

因为参数I在方法中也传递了filterdefinition。 但我没有找到如何限制我的过滤器的agreggation。

任何想法 ???

    private void UpdateFacets(SearchResponse response, FilterDefinition<MediaItem> filter, ObjectId dataTableId)
    {

        response.FacetGroups =new List<SearchFacetGroup>();

        SearchFacetGroup group = new SearchFacetGroup()
        {
            Code = "CAMERAMODEL",
            Display = "Camera model",
            IsOptional = false
        };

        using (IDataAccessor da = NodeManager.Instance.GetDataAccessor(dataTableId))
        {
            var collection = da.GetCollection<MediaItem>();
            var list = collection.Aggregate()
                .Group(x => ((ImageMetaData) x.MetaData).Exif.CameraModel, g => new { Model = g.Key, Count = g.Count() })
                .ToListAsync().Result;


            foreach (var l in list)
            {
               group.Facets.Add(new SearchFacetContainer()
               {
                   Code = l.Model,
                   Display = l.Model,
                   Hits = l.Count, 
                   IsSelected = false
               });
            }
        }

        response.FacetGroups.Add(group);
    }

我没有使用facet,但使用Mongo驱动程序Aggregate有.Match操作接受filterdefinition。

collection1.Aggregate().Match(filter)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM