繁体   English   中英

MongoDB的GetCollection方法是否将整个集合加载到RAM或引用中? C#

[英]Does MongoDB GetCollection method load the entire collection into RAM or a reference? C#

我有一个存储库类,可以处理MongoDB的所有数据库功能,这是构造函数的实现:

public LocationRepository(string connectionString)
{
    if (string.IsNullOrWhiteSpace(connectionString))
    {
        connectionString = "mongodb://localhost:27017";
    }

    _client = new MongoClient(connectionString);
    _server = _client.GetServer();
    _database = _server.GetDatabase("locDb");
    _collection = _database.GetCollection<Location>("Location");
}

然后我做类似的事情:

_collection.Insert(locationObject)

在该类的其他方法中。

我想知道考虑到有限的内存是否明智? 如果没有,是否存在一种建议的方法,可以直接将其持久保存到数据库而不必加载集合。

GetCollection不会加载集合,甚至Find()都不会加载。 实际上,在从数据库中实际加载任何内容之前,您必须开始迭代MongoCursor ,即使那样,它也不会加载整个集合,而只会加载可配置大小的批处理。

例如,如果您想实际加载整个集合,则可以在MongoCursor上调用ToList() ,但是当然这几乎没有道理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM