0

を使用してのMongoDBのビュータイプのコレクションから列を取得することができます。通常のコレクションは機能しますが、ビュータイプのコレクションは機能しません。 コレクションのビューの種類から列名が必要です。上記画像 "AnalyticsView" では、どのように私はC#の</p> <p>を使用してのMongoDBのビュータイプのコレクションから列を取得するにはどうすればよい私はMongoDBのコレクションから列を取得するために、このコードを使用していますC#の

var client = new MongoClient(Connstr); 
var DB = client.GetDatabase(dbname);   
var collection = DB.GetCollection<BsonDocument>(tablename); 
var cursor = collection.FindAsync(new 
    BsonDocument()).Result.ToListAsync().Result;   
foreach (BsonDocument document in cursor) 
{ 
    Type type; 
    var typestring = Enum.GetName(typeof(BsonType), 
    column.Value.BsonType); 
    Columnlist.Add(column.Name); 
} 

enter image description here

ビュー型のコレクションです。

私はMongoDb Driverを使用して列を取得しています。文書によると

+0

取得する? – Mahdi

+0

@Mahdi "ビュータイプがfindメソッドをサポートしていません"これはエラーです。私はビューのタイプのコレクションからレコードを取得するためのソリューションが必要です。:) – Ramprasathselvam

答えて

1

ビューは読み取り専用です。ビューへの書き込み操作でエラーが発生します。 読み取り操作がビューをサポートすることができ、次の

  • db.collection.find()
  • db.collection.findOne()
  • db.collection.aggregate()
  • db.collection.countだから、()
  • db.collection.distinct()

、私は連結ビューを作成しましたemployeeコレクションの従業員の名と姓。あなたはビューの例hereを見つけることができます。それから私は、次のように(私の見解はFullnameをある一つの特性を持つことになります)ビューの私のコードでクラスを追加しました:残りの部分はこのように行われている

public class EmployeeName 
{ 
    [BsonElement("fullname")] 
    public string Fullname { get; set; } 
} 

:エラーあなたは何

var context = new Context(); 
var builder = Builders<EmployeeName>.Filter; 
var filter = builder.Eq(x => x.Fullname, "John Smith"); 
var test = context.EmployeeView.Find(filter).SingleOrDefault(); 
関連する問題