如何解决Cosmos DB:检索N条许多记录时使用MaxItemCount和Take之间的区别
我需要从Cosmos DB
容器中获取前N条记录。我注意到,我在解决方案的不同位置一直使用两种不同的模式,并且希望坚持使用一种方法。到目前为止,我已经将两种方法视为相同,但是我不是100%自信。
方法1:
container.GetItemLinqQueryable<T>(true,continuationToken,requestOptions).Where(...).ToList()
通过这种方法,我创建了一个QueryRequestOptions
对象,并将MaxItemCount
设置为n
,以配置要检索的记录数。
方法2:
container.GetItemLinqQueryable<T>().Where(...).Take(n).ToList()
这使用LINQ的Take()
方法。
- 这两种方法在性能或其他我不了解的方面是否有区别?
- 此外,我面临的另一个挑战是将这些查询转换为异步查询。我注意到
ToListAsync()
不可用,我想我需要使用feed迭代器,该迭代器需要几行样板代码。这里有没有更简单的使用异步方法?
解决方法
方法1和方法2调用相同的代码。
所有3个参数都是可选的。因此,如果您仅使用默认值,则无需发送任何参数。
如果要将参数更改为默认值以外的其他值,则需要使用方法1。
建议始终使用ToFeedIterator(),并执行异步执行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。