我正在用Postman测试我的asp.net core 2.2 Web api。我像这样(httppatch)手动编写JSON:
{
"query": "{\"name\": \"foo\"}",
"update": [ "{\"$set\":{\"name\":\"foo2\"}}","{\"$set\":{\"path\": \"foo2 path\"}}" ]
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在考虑如何在客户端上构建补丁主体。我的问题是如何在json中获得等效的代码,使其看起来像我手动编写的代码?
var query = Builders<T>.Filter.Eq(e => e.name, "foo");
var updates = Builders<T>.Update.Set(e => e.name, "foo2").Set(e => e.Path, "foo2 path");
Run Code Online (Sandbox Code Playgroud)
我想这全都与序列化有关,我知道该怎么做?
- 更新 -
我找到了这个:
var serializerRegistry = BsonSerializer.SerializerRegistry;
var documentSerializer = serializerRegistry.GetSerializer<T>();
var upList = updates.Render(documentSerializer, serializerRegistry);
Run Code Online (Sandbox Code Playgroud)
但它仅获取将所有集合组合为一个的最后一个集合(我的糟糕,多亏@Simon Mourier指出了我的错误!)