【发布时间】:2018-04-12 16:25:08
【问题描述】:
我在mongodb中有json文件
示例
{
"SchemaName": "Intelligence",
"SchemaDescription": "WindPower",
"SchemaType": "WindPower",
"SchemaTypeId": 1,
"SchemaData": {
"ProjectId": 1,
"LastUpdated": "2016-07-02T19:27:28.000+0000",
"ProjectName": "Zhonghuashan II",
"Capacity": 49.0,
"Technology": "Onshore",
"Country":{
"CountryId":1,
"CountryName":"UnitedKingdom",
"CountryCode":"UK"
}
}
}
现在我正在根据搜索条件过滤数据
var filter = Builders<Schema>.Filter.Or(
Builders<Schema>.Filter.Where(p => p.SchemaData.ProjectName.ToLower().Contains(searchCriteria.ProjectName.ToLower())),
Builders<Schema>.Filter.Where(p => p.SchemaData.Technology.ToLower().Contains(searchCriteria.Technology.ToLower())),
Builders<Schema>.Filter.Where(p => p.SchemaData.Country.CountryName.ToLower().Contains(searchCriteria.Country.ToLower()))
);
var list = await collectionHandler.ReadOnly<Schema>().FindSync(filter).ToListAsync();
return list;
我需要添加条件
searchCriteria.ProjectName ="" || searchCriteria.Technology="" || searchCriteria.Country = "" = return all recordssearchCriteria.ProjectName ="abc" and searchCriteria.Technology="xyz" || searchCriteria.Country = "" = return matched recordssearchCriteria.ProjectName ="abc" and searchCriteria.Technology="xyz" and searchCriteria.Country = "pqr" = return matched recordssearchCriteria.ProjectName ="" || searchCriteria.Technology="xyz" and searchCriteria.Country = "pqr" = return matched recordssearchCriteria.Technology="" ="abc" || searchCriteria.Technology="xyz" and searchCriteria.Country = "pqr" = return matched records
说搜索条件的任何属性都可以与搜索条件的其他属性结合使用 and 和 or
【问题讨论】:
标签: c# asp.net-mvc mongodb linq filter