3

フィールドが文字列配列の形式で指定されている場合、新しい MongoDB C# ドライバーのフィールドにどのように投影しますか?. 次のようにして、単一のフィールドに投影する方法を見つけることができました

collection.find(filter).Project(Builders<Category>.Projection.Include(fieldName)

これを拡張してフィールドの配列を取得するにはどうすればよいですか?.

4

3 に答える 3

5

延長方法もありますInclude

var projection = Builders<Category>.Projection.Include(fieldList.First());
foreach (var field in fieldList.Skip(1))
{
    projection = projection.Include(field);
}
var result = await collection.Find(filter).Project(projection).ToListAsync();
于 2015-07-08T01:49:05.783 に答える
0

mofenko よりも優れた方法として、最初の列を含める必要はありません。

ProjectionDefinition<BsonDocument> project = null;

foreach (string columnName in columnsToInclude)
{
    if (project == null)
    {
        project = Builders<BsonDocument>.Projection.Include(columnName);
    }
    else
    {
        project = project.Include(columnName);
    }
}

これは緩やかに型付けされたデータ用です。クラスを使用している場合は、クラスに置き換えBsonDocumentます

于 2016-02-29T15:36:25.383 に答える