如果我有以下结构:
[BsonDiscriminator(RootClass = true)]
[BsonKnownTypes(typeof(Class0), typeof(Class1), typeof(Class2))]
public abstract class BaseClass
{
[BsonRepresentation(MongoDB.Bson.BsonType.ObjectId)]
public string Id;
}
public class Class0 : BaseClass {}
public class Class1 : BaseClass
{
public Prop prop = new Prop1();
}
public class Class2 : BaseClass
{
public Prop prop1 = new Prop1();
public Prop prop2 = new Prop2();
}
//
[BsonDiscriminator(RootClass = true)]
[BsonKnownTypes(typeof(Prop1), typeof(Prop2))]
public abstract class Prop {}
public class Prop1 : Prop {}
public class Prop2 : Prop {}
我将每个Class
对象中的一个插入到mongo数据库中:
是否可以构建一个能够以面向对象的方式返回List<Prop>
(通过搜索_t值并投影子文档)的查询?
有些事情:
IMongoCollection<BaseClass> data = db.GetCollection<BaseClass>("data");
List<Prop> props = data.AsQueryable().OfType<Prop>();
如果以面向对象的方式无法实现,是否可以通过任何类型的mongo查询实现?