我有一个名为"employees"的MongoDB集合,其中有这样的文档:
{
"_id": "4dc077b07701540f34000001",
"FullName": "Fullname...",
"FirstName": "First name...",
"LastName": "Last name...",
"Title": "Title... ",
"Location": "Location...",
"Customer": "Customer...",
"Phone": "Phone...",
"CellPhone" : "Cellphone...",
"EMail": "E-mail..."
}
我试图使一个方法,做一个foreach循环在集合中的所有文档,并把FullName-key的每个值,并将其添加到一个列表。
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;
以上是我尝试过的代码,带注释的代码返回一个NullReferenceException,未注释的代码返回一个列表中的整个文档。
我的问题是:我必须做什么样的查询,以获得每个键的每个值称为"FullName"到一个列表?我在Windows 7上使用当前的MongoDB稳定版本,我正在使用MongoDB- csharp社区驱动程序。感谢所有的帮助和指点!
var collection = _db.GetCollection("employees");
return (from p in collection.AsQueryable()
select p["FullName"]).toList();
应该做吗?
但是你应该考虑使用泛型方法,如下所示:
http://www.mongodb.org/display/DOCS/CSharp +司机+教程# CSharpDriverTutorial-GetCollectionmethod