gpt4 book ai didi

mongodb - FilterDefinition 序列化在新的 MongoDb 驱动程序中无法按预期工作

转载 作者:可可西里 更新时间:2023-11-01 10:02:12 27 4
gpt4 key购买 nike

使用早于 2 的 mongodb .net 驱动程序版本,我们构建了 Query<Person>对象(其 api 的一部分),并能够使用 ToJson( 将其序列化为 mongodb 查询) 方法。使用 mongodb 驱动程序 v.2.5 现在我们有新的 FilterDefinition<Person>构建类似的查询,但序列化不再正常工作:

FilterDefinition<Person> filter = Builders<Person>.Filter.Eq(t => t.Name, "Alex");
filter.ToBsonDocument() // returns {{ "_t" : "SimpleFilterDefinition`2" }}
filter.ToJson() // returns same {{ "_t" : "SimpleFilterDefinition`2" }}
filter.ToString() // returns MongoDB.Driver.SimpleFilterDefinition`2[TestApp.Person,System.String]

其他类型的过滤操作和其他实体也是如此。关于如何使序列化正常工作有什么建议吗?

最佳答案

尝试以下操作

        var personSerializer = new MongoClient()
.GetDatabase("test")
.Settings
.SerializerRegistry
.GetSerializer<Person>();

var filter = Builders<Person>.Filter.Eq(x => x.FirstName, "Bob");

var doc = filter.Render(personSerializer, BsonSerializer.SerializerRegistry);

Console.WriteLine(doc);

关于mongodb - FilterDefinition 序列化在新的 MongoDb 驱动程序中无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com