[英]c# MongoDB select list of fields from a field
假設我將此文檔結構存儲在MongoDB數據庫中。
{
"_id" : ObjectId("54f131f3c4ca7b044eb11171"),
"services" : "gegsg",
"validCertificateOrLicense" : {
"title" : "asfasf",
"number" : "fasfsdf",
"dateIssued" : "fsdffsdfsdf",
"validUntil" : "fsdfsdfd",
"issuingAgency" : "fsdfsd"
}
}
我想在我的Binding中列出要在我的DataGrid上使用的那些字段,我試圖使用在幾個堆棧問題上發布的解決方案。 但是沒有一個工作,我試圖檢查使用Console.WriteLine(BindList.Count)來檢查查詢是否有效。
class facultyData
{
public ObjectId _id { get; set; }
public string services { get; set; }
public List<certification> validCertificateOrLicense { get; set; }
}
class certification
{
public string title { get; set; }
public string number { get; set; }
public string dateIssued { get; set; }
public string validUntil { get; set; }
public string issuingAgency { get; set; }
}
這是我嘗試過的解決方案之一。
var query = collection.AsQueryable<facultyData>()
.Where(c => c.validCertificateOrLicense.Any(d => d.stores.Count() == 1);
或者我的ToList代碼可能有問題
List<facultyData> acadList = query1.ToList<facultyData>();
BindingList<facultyData> acadBinding = new BindingList<facultyData>(acadList);
我認為這會奏效
var acadList = Database.GetCollection<facultyData>("facultyData").AsQueryable().Where(f => f.validCertificateOrLicense.Any()).ToList();
您的類facultyData
包含validCertificateOrLicense
字段中的認證列表。 但是,DB中的文檔結構僅包含validCertificateOrLicense
字段中的單個證書。
如果數據庫中的文檔結構如下,則查詢應該有效
{
"_id" : ObjectId("54f131f3c4ca7b044eb11171"),
"services" : "gegsg",
"validCertificateOrLicense" : [{
"title" : "asfasf",
"number" : "fasfsdf",
"dateIssued" : "fsdffsdfsdf",
"validUntil" : "fsdfsdfd",
"issuingAgency" : "fsdfsd"
}]
}
注 - validCertificateOrLicense
字段現在包含一系列certification
子文檔。
或者,您可以更改c#實體以匹配數據庫中的現有文檔結構。 您的facultyData對象如下所示
class facultyData
{
public ObjectId _id { get; set; }
public string services { get; set; }
public certification validCertificateOrLicense { get; set; }
}
注 - 現在validCertificateOrLicense
字段僅包含一個certification
文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.