我正在寻找通过 userId 列表过滤包含 userId 属性的文档集合的最有效方法。我正在使用 c# 和 mongodb 驱动程序。我所有其他的“搜索”代码都使用 linq,这是我的偏好(除非有充分的理由以其他方式执行此操作)。
如果我使用 SQL(我觉得它更熟悉)来执行此操作,我可能会创建一个临时表并将两者连接起来以获得过滤后的文档列表。我想知道在 MongoDB 中执行此操作的最佳方法是什么。
例如我有一组文件看起来像:
{
"_id" : ObjectId("606e33de0f0beadb86ac119b"),
"UserId" : "c1f0fc60-e0c1-480e-b765-8baae0ecbb4f",
"First" : "David",
"Last" : "Example",
...
}
我有一个要过滤的 UserId 列表。该列表可以是少数到数千个。
如果您有一个名为
users
的集合,其中包含具有 UserId
属性的对象,以及一个名为 List<UserId>
的 userIds
您想用来过滤集合,您可以执行以下操作:
List<User> filteredUsers = users
.Where(user => userIds.Contains(user.UserId))
.ToList();