C# 使用C驱动程序在mongodb中执行映射
我有一个要映射的实例Person的对象 我想执行一些类似于LINQ的Select方法的操作,并返回IEnumerable而不是IEnumerable 我还发现我一直在寻找的方法在mongodb术语中称为map 有没有与C驱动程序一起使用的等效程序 Mongo示例:我谈论的Mongo函数是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
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方法。