我剛剛開始在c#中使用mongodb,但它很好,但我很努力去理解如何動態地創建一個linq查詢來傳遞給mongodb。用mongodb動態創建linq
情況:我有一個文件具有一些常規屬性文件名,文件大小等,其中一個屬性是元數據,它是具有值的字段列表。用戶將能夠動態地指定搜索條件,所以我不能硬編碼這個查詢。
我給完整性對象:
public class asset
{
public ObjectId Id { get; set; }
public string filename { get; set; }
public int filesize { get; set; }
public List<shortmetadata> metadata { get; set; }
}
public class shortmetadata
{
public string id { get; set; }
public string value { get; set; }
}
我當前的代碼,其被手動設置的搜索條件,並返回具有「你好」或「世界」,在元數據值字段中的任何資產:
MongoClient client = new MongoClient();
var db = client.GetDatabase("Test");
var collection = db.GetCollection<asset>("assets");
var assets = collection.AsQueryable().Where(i =>
i.metadata.Any(m => m.value.Contains("hello")) ||
i.metadata.Any(m => m.value.Contains("world"))
);
我希望能夠做的是動態地創建基於用戶選擇的查詢(不要這樣做,因爲想讓它在代碼中工作!)
任何幫助都會很棒。
您只需鏈'在哪裏(...)'的'取決於標準和LINQ將他們解決到表達IQueryable'電話 - 或者,[如果你想更深入..](HTTPS ://www.simple-talk.com/dotnet/.net-framework/giving-clarity-to-linq-queries-by-extending-expressions/) – stuartd