我是 C# mongo 的新手,之前在 Node 和 Mongo 上作業過。我有一個名為任務的集合。下面是一個示例記錄。
{
"_id" : ObjectId("6193bfba23855443a127466a"),
"taskIdentifier" : LUUID("00000000-0000-0000-0000-000000000000"),
"title" : "PR Liquidators",
"company" : "iuytreugdfh",
"purpose" : "test purpose",
"column" : "Search",
"assignTo" : "Shiva",
"assignToId" : ObjectId("61933b47a79ac615648a7855"),
"assignToImage" : null,
"notes" : "ggh@William james ",
"done" : 0,
"taskID" : "00029",
"status" : "Pending",
"states" : [
"Alabama - AL",
"Alaska - AK"
],
"active" : true,
"updatedAtUtc" : ISODate("2021-11-18T12:26:37.616Z"),
"updatedBy" : ""
}
在我的 c# webapi 專案中,我總是從以下形式的 api 請求中獲得一個名為 filterCriteria 的陣列:
filterCriteria=[
{key:"purpose",value:"test purpose",type:"eq"},
{key:"active",value:true,type:"eq"}
]
現在我想使用給定的filterCriteria查詢 mongo 收集任務。
嘗試使用 LINQ 陳述句但沒有使用 --hardcoding 作業但動態不起作用。我怎樣才能做到這一點???
uj5u.com熱心網友回復:
也許您正在尋找Builders:
public enum FilterType{
eq=1,//equal
gt=2//greater than
}
//************
var builder = Builders<FilterCritertiaModel>.Filter;
var query = builder.Empty;
foreach(var filterCriteriaItem in filterCriteria){
switch (filterCriteriaItem.type) {
case eq:
query &= builder.Eq(filterCriteriaItem.Key, filterCriteriaItem.Value);
case gt:
query &=builder.Gt(filterCriteriaItem.Key, filterCriteriaItem.Value);
//all cases....
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/364968.html
