我使用下面的代码来检索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;
}
[{ “名称”: “_ ID”, “值”: “5c4f2f7b9914ed3a4b8a9b8f”},{ “名称”: “ID”, “值”:3470264},{ “名称”: “坐标”, “值”:[{ “名”: “结肠”, “价值”: - 48.479172},{ “名”: “纬度”, “价值”: - 20.94944}]},{ “名”: “国家”, “值”:“BR “},{” 名称 “:” geoname “ ”值“:[{ ”名称“: ”CL“, ”值“: ”P“},{ ”名称“: ”代码“, ”值“:” PPL “},{” 名称 “:” 父 “ ”值“:3448433}]},{ ”名称“: ”LANGS“, ”值“:[[{ ”名称“: ”链接“, ”值“:” http://en.wikipedia.org/wiki/Bebedouro “}]]},{” 名称 “:” 姓名 “ ”值“: ”贝贝多鲁“},{ ”名称“: ”统计“, ”值“:[{ ”名称“: ”水平“,” 值“:1.0},{” 名称 “:” 群体”, “值”:71862}]},{ “名称”: “站”, “值”:[[{ “名称”: “ID”, “值” :4566},{ “名称”: “DIST”, “值”:76},{ “名称”: “KF”, “值”:1}]]},{ “名称”: “缩放”,“值“:9}]
然而,由于一些记录含有比其他人更多的领域,我想选择一个特定的两个用于进一步处理。使用上面的结果,这些将是:
{ “名”: “国家”, “值”: “BR”} { “名”: “名字”, “值”: “贝贝多鲁”}
有没有办法做到这一点?
经过一番思考,我已经找到了解决问题的办法。
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;
}
而现在的结果如下。
{ “物品1”: “翠湖”, “ITEM2”: “US”}