首页 > 解决方案 > MongoDB - 查询字典中的值

问题描述

我有一个Conversations集合,包含这样的Conversation文档(简化为重点):

public class Conversation
{
    public ObjectId Id { get; set; }
    public Dictionary<ObjectId, DateTime> Members { get; set; }
}

字典成员将成员 ID映射到他们在对话中的输入日期。

然后,在Conversations集合中,如果对于特定的User,我想查询他所在的所有Conversations,我正在做的事情如下:

public List<Conversation> GetConversations(in User user)
{
    Query = Builder.Eq(doc => doc.Members.ContainsKey(user.Id), true);
    return Find(Query).ToList();
}

问题是,这是正确的做法吗?

标签: c#mongodbdictionary

解决方案


Query = Builder.Eq(doc => doc.Members.ContainsKey(user.Id), true);

看起来像收藏扫描。

您是否可以跟踪每个成员文档中的对话?它可以通过数组或子集合来实现。


推荐阅读