MongoDB ищет конкретную строку в collectionm, помещает в список

#c# #mongodb

#c# #mongodb

Вопрос:

У меня настроена база данных и коллекция MongoDB.

Мои объекты коллекции выглядят следующим образом:

 _id = "string"
details = {
    more_vars = "string"
}
  

Из details объекта я хочу получить значение определенной переменной ( more_vars возвращает string ). и затем, возможно, получить все из них в список, чтобы я мог легко искать по нему.

Код пока

 public static void Connect()
{
    var client = new MongoClient("conntected through srv");
    var database = client.GetDatabase("monza");
    var collection = database.GetCollection<BsonDocument>("whitelist");
    var filter = collection.Find(new BsonDocument()).ToList();
    foreach(BsonDocument doc in filter)
    {
        Console.WriteLine(doc.ToString());
    }
    
}
  

вывод: получить все объекты в коллекции
вывод, который я хотел бы: получить только значение определенного ключа, а затем для каждого объекта поместить этот ключ в список (может быть, массив?)

Комментарии:

1. Вы спрашиваете, как запросить «details.more_vars» для значения «строка»? Если нет, я не совсем понимаю.

2. Да, но затем для каждого объекта поиска в коллекции

3. Насколько я понимаю, вам просто нужно использовать SetFields , как var filter = collection.Find(new BsonDocument()).SetFields(Fields.Include("details")).ToList();

4. Или var filter = collection.Find(new BsonDocument()).Project(d => new { d.details }).ToList();

5. @SelimYildiz При попытке я получаю 'BsonDocument' does not contain a definition for 'details' and no accessible extension method 'details' accepting a first argument of type 'BsonDocument' could be found (are you missing a using directive or an assembly reference?