我正在使用以下代码从MongoDB数据库中检索随机文档(客户端,数据库和收集参数已被有意更改)。
[HttpGet]
public ActionResult<BsonDocument> Get()
{
var client = new MongoClient(CLIENT);
var database = client.GetDatabase(DATABASE);
var collection = database.GetCollection<BsonDocument>(COLLECTION);
var document = collection.AsQueryable().Sample(1).First();
Response.ContentType = "application/json";
return document;
}
[{“ name”:“ _ id”,“ value”:“ 5c4f2f7b9914ed3a4b8a9b8f”},{“ name”:“ id”,“ value”:3470264},{“ name”:“ coord”,“ value” :[{{name“:” lon“,” value“:-48.479172},{” name“:” lat“,” value“:-20.94944}]},{” name“:” country“,” value“ :“ BR”},{“ name”:“ geoname”,“ value”:[{“ name”:“ cl”,“ value”:“ P”},{“ name”:“ code”,“ value” : “PPL”},{ “名称”: “父”, “值”:3448433}]},{ “名称”: “LANGS”, “值”:[[{ “名称”: “链接”,“值“:” {http://en.wikipedia.org/wiki/Bebedouro“}]]}},{”名称“:”名称“,”值“:” Bebedouro“},{”名称“:” stat“,”值“:[{”名称“ :“级别”,“值”:1.0},{“名称”:“人口”,“值”:71862}]},{“名称”:“站点”,“值”:[[{“名称”: “ id”,“ value”:4566},{“ name”:“ dist”,“ value”:76},{“ name”:“ kf”,“ value”:1}]]},{“ name” :“ zoom”,“ value”:9}]
但是,由于某些记录比其他记录包含更多的字段,因此我想选择一个特定的两个字段进行进一步处理。使用上面的结果,这些将是:
{“名称”:“国家”,“值”:“ BR”} {“名称”:“名称”,“值”:“ Bebedouro”}
有没有办法做到这一点?
答案 0 :(得分:0)
经过一番思考,我找到了解决问题的方法。
1)方法的结果更改为元组。
2)检索了城市和国家这两个字段的值,并将其转换为字符串。
3)将两个值添加到元组。
[HttpGet]
public ActionResult<Tuple<string, string>> Get()
{
var client = new MongoClient(CLIENT);
var database = client.GetDatabase(DATABASE);
var collection = database.GetCollection<BsonDocument>(COLLECTION);
var document = collection.AsQueryable().Sample(1).First();
var city = document.GetValue("name").ToString();
var country = document.GetValue("country").ToString();
Tuple<string, string> result = new Tuple<string, string>(city, country);
Response.ContentType = "application/json";
return result;
}
现在结果如下。
{“ item1”:“ Lakewood”,“ item2”:“ US”}