2016-05-21 3 views
0

これは私のコードです:C#およびMongoDBのバージョン= "2.2.3"のIMongoCollectionにフィルタを動的に追加する方法は?

var database = new MongoClient("mongodb://192.168.3.122").GetDatabase("xxxx"); 
var collection = database.GetCollection<School>("School"); 

//var it = new List<IMongoQuery>(); 
//it.Add(Query.EQ("Phone", "77915656")); 
//it.Add(Query.EQ("EstablishedYear", 1349)); 

//var query = new QueryBuilder<School>(); 
//query.And(it); 

IMongoQuery query = new QueryDocument(); 

Query.And(query, Query.EQ("Phone", "77915656")); 
Query.And(query, Query.EQ("EstablishedYear", 1349)); 
collection.Find(query).ToList(); // eror here!!! 

私は、クエリから結果を取得する方法がわかりません!

とエラーです:

「MongoDB.Driver.IMongoCollectionは」「検索」の定義と最高の拡張メソッドのオーバーロード「MongoDB.Driver.IMongoCollectionExtensions.Find(MongoDB.Driver.IMongoが含まれていませんコレクション、MongoDB.Driver.FilterDefinition、MongoDB.Driver.FindOptions)」は、いくつかの無効な引数

答えて

4

あなたQueryDocument使用し、Findが必要です...あなたは、フィルタを作成したい場合は種類が含まれていないがありますフィルタービルダー...私の心の外:

var database = new MongoClient("mongodb://192.168.3.122").GetDatabase("xxxx"); 
var collection = database.GetCollection<School>("School"); 

var builder = Builders<School>.Filter; 
var filter = builder.Eq("Phone", "77915656"); 
filter = filter & builder.Eq("EstablishedYear", 1349); 

var myFilteredList = collection.Find(filter).ToList();