【问题标题】:How to retrieve data in proper JSON format from MongoDB in C#如何在 C# 中从 MongoDB 中以正确的 JSON 格式检索数据
【发布时间】:2020-03-31 03:26:12
【问题描述】:

我想在 C# .Net Web API 中从 mongoDB 中检索一个集合的所有文档。下面的代码工作正常,但它正在返回 BsonDocument

var client = new MongoClient(connectionString);
var db = client.GetDatabase("STRDB");
var mongoCollection = db.GetCollection<BsonDocument>(collection);
var documents = mongoCollection.AsQueryable();
return Ok(documents);

从上面的代码我得到以下格式的数据(在 JSON.stringify() 之后)

[  
   [  
      {  
         "name":"_id",
         "value":"5de9f351baca28556c6a4b71"
      },
      {  
         "name":"Name",
         "value":"Harsha"
      },
      {  
         "name":"Age",
         "value":20
      },
      {  
         "name":"Gender",
         "value":"M"
      },
      {  
         "name":"Skills",
         "value":[  
            {  
               "name":"Java",
               "value":""
            },
            {  
               "name":"Mule",
               "value":true
            },
            {  
               "name":"Angular",
               "value":""
            }
         ]
      }
   ],
   [  
      {  
         "name":"_id",
         "value":"5de9f358baca28556c6a4b72"
      },
      {  
         "name":"Name",
         "value":"Anji"
      },
      {  
         "name":"Age",
         "value":21
      },
      {  
         "name":"Gender",
         "value":"M"
      },
      {  
         "name":"Skills",
         "value":[  
            {  
               "name":"Java",
               "value":""
            },
            {  
               "name":"Mule",
               "value":true
            },
            {  
               "name":"Angular",
               "value":true
            }
         ]
      }
   ]
]

如何以正确的 JSON 格式接收它,或者如何将此 BSON 文档转换为 JSON,因为我无法处理此输出。

【问题讨论】:

标签: c# .net json angular mongodb


【解决方案1】:

尝试以下操作,并进行转换。

var client = new MongoClient(connectionString);
var db = client.GetDatabase("STRDB");
var mongoCollection = db.GetCollection<BsonDocument>(collection);
var documents = mongoCollection.AsQueryable();
return Ok(documents.ToList().ConvertAll(BsonTypeMapper.MapToDotNetValue));

【讨论】:

  • documents.ConvertAll() 显示错误。 IMongoQueryable 不包含“ConvertAll”的定义,并且没有可访问的扩展方法“ConvertAll”接受类型的第一个参数.....
  • 先尝试转换为列表。
猜你喜欢
  • 2015-07-27
  • 1970-01-01
  • 2019-02-17
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
  • 2023-04-04
相关资源
最近更新 更多