【发布时间】:2017-03-04 15:08:13
【问题描述】:
我正在尝试寻找最快的方法来了解 MongoDB 中是否存在多个文档。我不需要这些文件本身,只需要确认它们的存在即可。
假设我有这个列表:
var L = new List<string> {"1", "3", "A"};
我想知道这些文件是否存在。
一种方法是这样(语法可能有点不对,因为我是从记忆中尝试的,但想法就在那里):
find(Query.In(_ => _._id, L));
它可以工作,但它也会返回所有文档,这是浪费时间
所以,我只能通过投影获得 ID:
find(Query.In(_ => _._id, L)).Project(Projection.Expression(_ => _._id));
这很好用,并返回给我一个现有 id 的列表。
问题是:查找/项目是否有效?还是有更快的方法来达到同样的效果?
(额外问题:如何使用流利的语法进行 query.in 操作?:))
【问题讨论】:
-
不确定您使用的是哪个版本的 MongoDb 驱动程序,但 v2.4 有一个采用 FilterDefinition 的 Count() 方法。这应该可以让您获得所需的计数。
-
我有 3.4 ; count 将无法告诉我存在哪些文件,只知道有多少。
标签: c# .net mongodb mongodb-.net-driver