-
Type: Bug
-
Resolution: Works as Designed
-
Priority: Major - P3
-
None
-
Affects Version/s: 2.8.1
-
Component/s: Serialization
-
Labels:None
The rendering of AndFilterDefinition is missing the $and string at the beginning:
var andFilter = Builders<Folder>.Filter.And( Builders<Folder>.Filter.Where(f => f.FolderGuid == folderId), Builders<Folder>.Filter.Where(f => f.ParentFolderGuid == folderId)) .Render(folderSerializer, BsonSerializer.SerializerRegistry); // Outputs: { "_id" : CSUUID("645624f2-35b5-4fe5-903c-7742e41d3371"), "ParentFolderGuid" : // CSUUID("645624f2-35b5-4fe5-903c-7742e41d3371") } Console.WriteLine(andFilter); var orFilter = Builders<Folder>.Filter.Or( Builders<Folder>.Filter.Where(f => f.FolderGuid == folderId), Builders<Folder>.Filter.Where(f => f.ParentFolderGuid == folderId)) .Render(folderSerializer, BsonSerializer.SerializerRegistry); // Outputs: { "$or" : [{ "_id" : CSUUID("645624f2-35b5-4fe5-903c-7742e41d3371") }, { "ParentFolderGuid" : CSUUID("645624f2-35b5-4fe5-903c-7742e41d3371") }] } Console.WriteLine(orFilter);