j'ai une collection MongoDB appelée « employés » où il y a des documents comme celui-ci:MongoDB/C# obtenir toutes les valeurs d'une certaine clé dans tous les documents
{
"_id": "4dc077b07701540f34000001",
"FullName": "Fullname...",
"FirstName": "First name...",
"LastName": "Last name...",
"Title": "Title... ",
"Location": "Location...",
"Customer": "Customer...",
"Phone": "Phone...",
"CellPhone" : "Cellphone...",
"EMail": "E-mail..."
}
Je suis en train de faire une méthode qui fait un foreach boucle sur tous les documents de la collection et place chaque valeur de la clé FullName et l'ajoute à une liste.
List<string> listed = new List<string>();
IMongoCollection collection = _db.GetCollection("employees");
//var list = collection.FindAll().Documents.ToList();
var persons = from p in collection.AsQueryable()
select p["FullName"];
//foreach (var lt in list)
foreach (var name in persons)
{
//listed.Add(lt["FullName"].ToString());
listed.Add(name.ToString());
}
return listed;
Ci-dessus, le code que je l'ai essayé, le code retourne a commenté un NullReferenceException, le code décommentée renvoie le document entier dans une liste.
Ma question est: Quel genre de requête dois-je faire pour obtenir chaque valeur pour chaque clé appelée "FullName" dans une liste? J'utilise la version stable actuelle MongoDB sur Windows 7, et j'utilise le pilote de la communauté MongoDB-CSharp. Toute aide et pointeurs sont appréciés!
La seule façon que je peux revenir que si je ne: Liste publique
(à partir de p dans collection.AsQueryable() select (String) p ["FullName"]). ToList() Est-ce que cela fonctionne? –
Je reçois cette exception: "Impossible de lancer l'objet de type 'MongoDB.Linq.MongoQuery' pour taper 'System.Linq.IQueryable'1 [System.String]'." en utilisant cette méthode de retour: public Liste GetPersons() –
bleakgadfly