mongodb 按集合文档上的单个属性列表筛选集合

l7mqbcuq  于 2023-03-22  发布在  Go
关注(0)|答案(1)|浏览(170)

我正在寻找一种最有效的方法来过滤包含userId属性的文档集合。我正在使用c#和mongodb驱动程序。我所有其他的“搜索”代码都使用linq,这是我的首选(除非有一个很好的理由以其他方式这样做)。
如果我使用SQL(我觉得更熟悉)来做这件事,我可能会创建一个临时表,并将两者连接起来以获得一个过滤的文档列表。我想知道在MongoDB中做这件事的最佳方法是什么。
例如,我有一个文档集合,看起来像:

{
    "_id" : ObjectId("606e33de0f0beadb86ac119b"),
    "UserId" : "c1f0fc60-e0c1-480e-b765-8baae0ecbb4f",
    "First" : "David",
    "Last" : "Example",
    ...
}

我有一个我想过滤的用户ID列表。这个列表可能是从几个到数千个。
编辑:我知道通常使用linq可以做到这一点,但我知道这并不总是转化为最有效的mongodb查询。

3bygqnnd

3bygqnnd1#

如果您有一个名为users的集合,其中包含具有UserId属性的对象,以及一个名为userIdsList<UserId>,您希望使用该集合进行筛选,则可以执行以下操作:

List<User> filteredUsers = users
    .Where(user => userIds.Contains(user.UserId))
    .ToList();

相关问题