c#List <t> .Count上的MongoDb过滤器

时间:2016-08-01 16:54:49

标签: c# mongodb mongodb-.net-driver

让代码说明一切; - )

public class SampleObject
{
    public List<string> SampleStrings {get;set;}
}

MongoDb相关代码:

// filter on SampleStrings.Count < 5
var filter = Builders<SampleObject>.Filter.Lt(so => so.SampleStrings.Count, 5)

未处理的异常:System.InvalidOperationException:无法确定so =&gt;的序列化信息so.SampleStrings.Count

Count()也不会工作。有MongoDb方式吗? 也许一个完美地整合在IFluent界面中?

1 个答案:

答案 0 :(得分:1)

试试这个:

var filter = Builders<SampleObject>.Filter.Not(
                      Builders<SampleObject>.Filter.Exists(so => so.SampleStrings[4]));

这将转换为以下mongo db过滤器查询:

"SampleStrings.4" : { "$exists" : false }

索引4处的元素不存在相当于说元素数应小于5