如何使用c#
从MongoDB中的Views类型集合中获取列我正在使用此代码从mongoDB集合中获取列。它可以正常收集但视图类型集合不起作用。 所以我需要来自集合的视图类型的列名。
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);
}
上图&#34; AnalyticsView&#34;是一个视图类型集合。
我使用MongoDb Driver获取列。
答案 0 :(得分:1)
根据文件:
视图是只读的;对视图的写操作将[throw]错误。 以下读取操作可以支持视图:
- 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();