繁体   English   中英

MongoDB C# 2.14驱动滤波器。

[英]MongoDB C# 2.14 Driver Filter.In

我正在尝试使用Filter.In API 获取文档的数组字段具有匹配值的所有文档。

Filter.In 方法需要 FieldDefinition 和 values 数组,但如果我使用 lambda,那不起作用……是这样缩进还是我面临某种错误? 我正在尝试一种强类型的方法......

        genres = new[] {"one", "two", "three"};
        //This filter works
        var filter = Builders<Movie>.Filter
            .ElemMatch(movie => movie.Genres, genre => genres.Contains(genre));
        //This filter works
        var filter2 = Builders<Movie>.Filter.In(nameof(Movie.Genres), genres);
        //This filter works
        var filter3 = Builders<Movie>.Filter.In("genres", genres);
        //Doesn't compile
        var filter4 = Builders<Movie>.Filter.In(movie => movie.Genres, genres);

In过滤器中检查指定字段的值是否包含在提供的数组中。 如果您有一个与电影相关联的Genre ,则可以使用此过滤器。 您会收到编译时错误,因为过滤器构建器希望此字段的类型为string而不是string[]

要检查您的数组字段是否包含提供的数组中的值,请尝试以下操作:

var filter = Builders<Movie>.Filter.AnyIn(movie => movie.Genres, genres);

暂无
暂无

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

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