Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 获取参考MongoDB驱动程序2.7.0_.net_Mongodb_Join_Mongodb .net Driver - Fatal编程技术网

.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; }    
}