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

3

我有一个仓库类,用于处理 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)

在类的其他方法中。

我想知道在有限内存情况下是否建议这样做?如果不是,是否有一种可行的方法可以直接将数据持久化到数据库而无需加载集合。

1个回答

4
GetCollection不会加载集合,甚至Find()也不会。实际上,在从数据库加载任何内容之前,必须开始迭代MongoCursor,即使这样,它也只会加载可配置大小的批处理,而不是加载整个集合。
如果您想真正加载整个集合,可以调用MongoCursor上的ToList()方法,但当然这很少有意义。

谢谢!这正是我想知道的。 - Tech Hands

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接