asp.net - 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();
}
任何有关如何解决此问题的见解或提示都会有所帮助。谢谢!
解决方案
IMO,您当前的结果是预期结果。
对于var results = mongoDatabase.GetCollection<BsonDocument>("Test_Collection").Find(value).ToList();
,它将返回一个列表,该列表Test_Collection
将被序列化为一个 json 数组。
如果您希望这仅返回一个文档,则应替换.ToList()
为.FirstOrDefault()
.
推荐阅读
- sql-server - 无法将 django 与 MS sql Server 数据库连接
- reactjs - 如何在点击时获取输入文本值
- c# - 当AD在Azure云上时如何从系统中获取用户
- selenium - 确定在 phptravels.net 站点中选择下拉列表的 xpath
- excel - 计算看到文本的次数,这也符合另一个标准
- node.js - 如何使用 `nodemon --exec "babel-node" 设置 nodejs 命令`--max-http-header-size`。
- c# - 如何在devexpress中设置大于值范围的轴范围
- visual-studio-code - 源代码控制保持侧边栏自动打开
- gchart - 谷歌图表饼图材料设计
- javascript - 如何使用正则表达式和 javascript 用强标签替换字符串中的模式?