asp.net api возвращает json из MongoDB - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь вернуть документ из 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();
    }

Любое понимание или советы, как это исправить, было бы полезно.Спасибо!

1 Ответ

0 голосов
/ 28 сентября 2018

IMO, ваш текущий результат - ожидаемый результат.

Для var results = mongoDatabase.GetCollection<BsonDocument>("Test_Collection").Find(value).ToList(); будет возвращен список Test_Collection, который будет сериализован в массив json.

Если вы ожидали возврата только одного документа, вам следует заменить .ToList() на .FirstOrDefault().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...