Доступ к сервису MongoDB Rest с помощью C#

#mongodb-.net-driver

#mongodb-.net-driver

Вопрос:

Я новичок в MongoDB, я хотел бы получить доступ к сервису MongoDB rest, данные, которые я извлек, имеют тип json. Мой вопрос в том, как вы анализируете эти данные? Я не нахожу никакого MongoDB api, который позволял бы мне легко запрашивать его. Итак, что бы вы сделали?

Вот пример данных, я запросил ключ «Name», который был возвращен мне в строке благодаря этому URL: http:// localhost :28017/MyDatabase/MyCollection/?filter_Key=Name

{ «смещение»: 0, «строки»: [ { «_id» : { «$binary»: «fXvnbtlMhU24EWg9NiY5QQ==», «$type»: «03» }, «Ключ»: «Имя», «Значение»: «Джон Смит» } ],

«total_rows»: 1 , «query» : { «Key»: «Name»} , «millis»: 0 }

И я хотел бы получить значение «Джон Смит»

Спасибо

[РЕДАКТИРОВАТЬ] Мне удалось получить {«Value»: «John Smith»} из моего json. о!! Посмотрите на этот уродливый код:

 var urlToFetch = "http://`localhost`:28017/MyDatabase/MyCollection/?filter_Key=Name";
var jsonData = GetDataFrom(urlToFetch);
var value = JsonConvert.DeserializeObject(jsonData);
foreach (var key in ((JObject)value)["rows"].Values())
{
    key.Parent.Last;
}
  

Это не идеально, я все еще не получаю своего Джона Смита, но должен быть лучший способ без ручного анализа, не так ли?

Ответ №1:

Вот решение, ребята:

 public class yourclass
{
    public void transformJsonToObject()
    {
     JsonSerializer serializer = new JsonSerializer();
     var value = JsonConvert.DeserializeObject<ResultViewModel>(jsonData);
     }
}
public class ResultViewModel
{
    [JsonProperty("offset")]
    public int Offset;
    [JsonProperty("rows")]
    public TestViewModel[] Rows;
}

public class TestViewModel
{
   [JsonProperty("_id")]
    public TestArray Id { get; set; }
    public string Key { get; set; }
    public string Value { get; set; }
}

public class TestArray
{
    [JsonProperty("$binary")]
    public string Binary { get; set; }
    [JsonProperty("$type")]
    public string Type { get; set; }
}