首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在另一个列表中查找列表中的任何Id

如何在另一个列表中查找列表中的任何Id
EN

Stack Overflow用户
提问于 2018-07-25 03:12:27
回答 1查看 42关注 0票数 0

我有一个存储在MongoDB中的对象;每个对象都有一个TeamIds列表。在我的函数中(见下文),我想传入一个teamIds列表。如果在数据库对象的TeamIds中找到列表中的任何teamIds,我希望返回该对象。

例如,在DB中,我有一个包含TeamIds列表的对象,如下所示:

TeamIds: [1213, 1280]

因此,在我的函数中,我将传入teamIds列表[1213,1215]。因为teamIds列表包含1213,所以我想返回上面的数据库对象。基本上,我需要做一个交集,找出两个数组是否有任何相同的项。如果有,我想返回数据库对象。我只是不确定该怎么做。下面是我的代码:

    public async Task<List<MyTeamObject>> FindTeamItems(List<int> teamIds)
    {
        var collection = _database.GetCollection<MyTeamObject>(collectionName);
        var filter = Builders<MyTeamObject>.Filter.In(x => x.TeamIds, teamIds);

        var result = await collection.FindAsync<MyTeamObject>(filter);
        var list = result.ToList();

        return list;
    }

当然,上面的代码不起作用。.In不允许我将数组传递给委托。

我如何才能达到我上面所描述的预期结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 03:53:45

我在搜索MongoDB文档时,碰巧找到了答案:

MongoDB C# 2.5 Driver - AnyIn Filter

public async Task<List<MyTeamObject>> FindTeamItems(List<int> teamIds)
{
    var collection = _database.GetCollection<MyTeamObject>(collectionName);
    var filter = Builders<MyTeamObject>.Filter.AnyIn(x => x.TeamIds, teamIds);

    var result = await collection.FindAsync<MyTeamObject>(filter);
    var list = result.ToList();

    return list;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51506002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档