C# 使用C驱动程序在mongodb中执行映射

C# 使用C驱动程序在mongodb中执行映射,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我有一个要映射的实例Person的对象 我想执行一些类似于LINQ的Select方法的操作,并返回IEnumerable而不是IEnumerable 我还发现我一直在寻找的方法在mongodb术语中称为map 有没有与C驱动程序一起使用的等效程序 Mongo示例:我谈论的Mongo函数是 db.getCollection('Persons').find({}).map( function(p) { return p._id; } ); 注:我已经知道了 var persons= await p

我有一个要映射的实例Person的对象

我想执行一些类似于LINQ的Select方法的操作,并返回IEnumerable而不是IEnumerable

我还发现我一直在寻找的方法在mongodb术语中称为map

有没有与C驱动程序一起使用的等效程序

Mongo示例:我谈论的Mongo函数是

db.getCollection('Persons').find({}).map( function(p) { return p._id; } );
注:我已经知道了

var persons= await personsCollection.Find(_ => true).ToListAsync();
return persons.Select(p=>p._id);
但我正在寻找更整洁的东西,这已经是mongodb驱动程序的一部分了

编辑

我在寻找超越预测的东西

我的代码当前如下所示:

var personsCursor= personsCollection.Find(_ => true);
var personsProjection = personsCursor.Project<Person>(Builders<Person>.Projection.Include(p => p._id));
var personsIds = await personsProjection.ToListAsync();
return personsIds .Select(p => p._id.ToString());

为此,您可以使用

从文件:

投影场

很多时候,我们并不需要文档中包含的所有数据。这个 投影生成器将帮助构建投影 查找操作的参数。下面我们将排除“\u id”字段 并输出第一个匹配文档:

var projection = Builders<BsonDocument>.Projection.Exclude("_id");
var document = await collection.Find(new BsonDocument()).Project(projection).FirstAsync();
Console.WriteLine(document.ToString());
现在,每个项目应该只表示为_id


希望能有所帮助。

为此,您可以使用

从文件:

投影场

很多时候,我们并不需要文档中包含的所有数据。这个 投影生成器将帮助构建投影 查找操作的参数。下面我们将排除“\u id”字段 并输出第一个匹配文档:

var projection = Builders<BsonDocument>.Projection.Exclude("_id");
var document = await collection.Find(new BsonDocument()).Project(projection).FirstAsync();
Console.WriteLine(document.ToString());
现在,每个项目应该只表示为_id


希望能有所帮助。

要在C中映射属性,您需要验证mongodb的官方文档

https://mongodb.github.io/mongo-csharp-driver/2.7/reference/bson/mapping/

要在C中映射属性,需要验证mongodb的官方文档

https://mongodb.github.io/mongo-csharp-driver/2.7/reference/bson/mapping/

我遇到过投影并且已经在使用它,但是为了得到可枚举的objectid,我仍然需要执行Select方法。我遇到过投影并且已经在使用它,但是为了得到可枚举的objectid,我仍然需要执行Select方法。