c#mongo 2.0减少了FindAsync的流量

c#mongo 2.0减少了FindAsync的流量,第1张

概述我必须从数据库中的每个文档中获取一些次要数据,但我仍然希望减少流量以防止“表扫描”(只是术语,我知道它不是表格). 我有一个集合让我们说“书籍”(只是因为每个人都用它来举例),现在,我的问题是我只想要与给定作者的书籍标题. var filter = Builders<Book>.Filter.Eq(n => n.Author, AuthorId); List<string 我必须从数据库中的每个文档中获取一些次要数据,但我仍然希望减少流量以防止“表扫描”(只是术语,我知道它不是表格).

我有一个集合让我们说“书籍”(只是因为每个人都用它来举例),现在,我的问题是我只想要与给定作者的书籍标题.

var filter = Builders<Book>.Filter.Eq(n => n.Author,AuthorID);            List<string> books = new List<string>();            using (var cursor = await BooksCollection.FindAsync(filter))            {                while (await cursor.MoveNextAsync())                {                    var batch = cursor.Current;                    foreach (Book b in batch)                        books.Add(b.Title);                }            }

但是,当我扫描整个收集结果时,我正在使用大块数据,不是吗?让我们假设那些不是书籍而是整个网格网络,每个文档大约5-10 MB,我有成千上万的..我可以在这里减少流量,而不需要在另一个集合中存储我需要的数据吗?

编辑
我认为它在sql数据库中称为“视图”.

解决方法 您可以通过 projection减少返回文档的大小,您可以在FindAsync的FindOptions参数中设置它,只包含您需要的字段:
var filter = Builders<Book>.Filter.Eq(n => n.Author,AuthorID);// Just project the Title and Author propertIEs of each Book documentvar projection = Builders<Book>.Projection    .Include(b => b.Title)    .Include(b => b.Author)    .Exclude("_ID"); // _ID is special and needs to be explicitly excluded if not neededvar options = new FindOptions<Book,Bsondocument> { Projection = projection };List<string> books = new List<string>();using (var cursor = await BooksCollection.FindAsync(filter,options)){    while (await cursor.MoveNextAsync())    {        var batch = cursor.Current;        foreach (Bsondocument b in batch)            // Get the string value of the Title fIEld of the Bsondocument            books.Add(b["Title"].Asstring);    }}

请注意,返回的文档是Bsondocument对象而不是Book对象,因为它们只包含投影字段.

总结

以上是内存溢出为你收集整理的c#mongo 2.0减少了FindAsync的流量全部内容,希望文章能够帮你解决c#mongo 2.0减少了FindAsync的流量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1235894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存