我正在嘗試使用Filter.InAPI獲取檔案的陣列欄位與值匹配的所有檔案。
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);
uj5u.com熱心網友回復:
Infilter 檢查指定欄位的值是否包含在提供的陣列中。如果您有一個Genre與電影相關聯的單曲,則可以使用此過濾器。您會收到編譯時錯誤,因為過濾器構建器希望此欄位的型別為 ,string而不是string[]。
要檢查您的陣列欄位是否包含提供的陣列中的值,請嘗試以下操作:
var filter = Builders<Movie>.Filter.AnyIn(movie => movie.Genres, genres);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/366826.html
標籤:C# MongoDB mongodb-.net-驱动程序
