MongoDB/ c#获取所有文档中某个键的所有值

本文关键字:文档 获取 MongoDB | 更新日期: 2023-09-27 17:54:38

我有一个名为"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社区驱动程序。感谢所有的帮助和指点!

MongoDB/ c#获取所有文档中某个键的所有值

var collection = _db.GetCollection("employees");
return (from p in collection.AsQueryable()
         select p["FullName"]).toList();

应该做吗?

但是你应该考虑使用泛型方法,如下所示:

http://www.mongodb.org/display/DOCS/CSharp +司机+教程# CSharpDriverTutorial-GetCollectionmethod