首页 > 解决方案 > asp.net api 从 MongoDB 返回 json

问题描述

我正在尝试从 MongoDB 返回一个文档。由于每个文档中的字段数量,我不希望创建模型。这是我当前输出的样子:

"[{ \"_id\" : ObjectId(\"5bacec90075c4c53a8274135\"), \"lenders\" : { \"ZU10lldsmjbhmvd_39zrd\" : { \"companyName\" : \"....

返回的值似乎被序列化了两次?我希望输出与此类似:

{"_id":ObjectId("5bacec90075c4c53a8274135"),"lenders":{"ZU10lldsmjbhmvd_39zrd":{"companyName":"...

这是我到目前为止的代码:

[HttpPost]
    public ActionResult<string> Post([FromBody] RequestInput input)
    {
        mongoDatabase = GetMongoDatabase();

        //Build the condition  for value input
        var value = Builders<BsonDocument>.Filter.Eq("request.property.value", input.value);

        //fetch results using filter from Test_Collection 
        var results = mongoDatabase.GetCollection<BsonDocument>("Test_Collection").Find(value).ToList();

        string final = results.ToJson();

        return final.ToString();
    }

任何有关如何解决此问题的见解或提示都会有所帮助。谢谢!

标签: asp.netjsonmongodbasp.net-core

解决方案


IMO,您当前的结果是预期结果。

对于var results = mongoDatabase.GetCollection<BsonDocument>("Test_Collection").Find(value).ToList();,它将返回一个列表,该列表Test_Collection将被序列化为一个 json 数组。

如果您希望这仅返回一个文档,则应替换.ToList().FirstOrDefault().


推荐阅读