#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?