C# 構建Mongodb過濾條件-4


以Eq,ElemMatch為例,假如一個document中有a,b,clist三個字段,clist為一個array類型的document,現在想要查詢a=11,b=22並且clist中的riqi為2020-10-2的數據寫法

1、強類型寫法

FilterDefinition<Test> filterDefinition = filterDefinitionBuilder.And(
                    filterDefinitionBuilder.Eq(r => r.a, 11),
                    filterDefinitionBuilder.Eq(r => r.b, 22),
                    filterDefinitionBuilder.ElemMatch(r => r.clist,
                        r => riqi == '2020-10-2'));

2、非強類型寫法

FilterDefinitionBuilder<BsonDocument> filterDefinitionBuilder = new FilterDefinitionBuilder<BsonDocument>();
                FieldDefinition<BsonDocument> fieldDefinition = "clist";
                FilterDefinitionBuilder<BsonDocument> filterDefinitionZiBuilder = new FilterDefinitionBuilder<BsonDocument>();
                FilterDefinition<BsonDocument> filterDefinition = filterDefinitionBuilder.And(
                    filterDefinitionBuilder.Eq("a", 11),
                    filterDefinitionBuilder.Eq("b", 22),
                    filterDefinitionBuilder.ElemMatch(fieldDefinition, filterDefinitionZiBuilder.Eq("riqi", "2020-10-2"))); 
                 

3、也可以直接使用mongo語句

FilterDefinition<BsonDocument> filter = @"{""a"":11,""b"":22,""clist"": { ""$elemMatch"": { ""riqi"": ""2020-10-2""} } }";

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM