.net 获取参考MongoDB驱动程序2.7.0
由于内存限制,我被迫将传感器中的数据点从阵列中删除到单个文档中。我决定在我的代码中使用.net 获取参考MongoDB驱动程序2.7.0,.net,mongodb,join,mongodb-.net-driver,.net,Mongodb,Join,Mongodb .net Driver,由于内存限制,我被迫将传感器中的数据点从阵列中删除到单个文档中。我决定在我的代码中使用MongoDBRef对象来“连接”集合。我可以创建并将那些MongoDBRef对象写入数据库,我也可以检索它们。 但是现在我想使用这个函数来遵循所描述的引用。但是,MongoDatabase是一个遗留类,目前已经过时,新接口IMongoDatabase没有实现该功能。 我看了一下,答案中的函数也不存在了。 我必须自己从MongoDBRef对象中的数据创建一个额外的查询,还是我在这里遗漏了什么?如果你是对的,你必
MongoDBRef
对象来“连接”集合。我可以创建并将那些MongoDBRef
对象写入数据库,我也可以检索它们。但是现在我想使用这个函数来遵循所描述的引用。但是,
MongoDatabase
是一个遗留类,目前已经过时,新接口IMongoDatabase
没有实现该功能。
我看了一下,答案中的函数也不存在了。
我必须自己从
MongoDBRef
对象中的数据创建一个额外的查询,还是我在这里遗漏了什么?如果你是对的,你必须自己创建一个额外的查询
实现这一点的一种方法是创建如下扩展方法
public static TDocument FetchDBRefAs<TDocument>(this MongoDBRef dbRef, IMongoDatabase database)
{
var collection = database.GetCollection<TDocument>(dbRef.CollectionName);
var query = Builders<TDocument>.Filter.Eq("_id", dbRef.Id);
return collection.Find(query).FirstOrDefault();
}
var referencedEntity = entity.ReferencedEntity.FetchDBRefAs<T>(this.database))
var referencedEntity = entity.ReferencedEntity.FetchDBRefAs<T>(this.database))
public class Entity
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string RandomProperty { get; set; }
public MongoDBRef ReferencedEntity { get; set; }
}