MongoDb在Document's Collection中搜索只返回完全匹配的结果-为什么?

本文关键字:结果 为什么 返回 Document 搜索 Collection MongoDb | 更新日期: 2023-09-27 18:08:38

我试图找到一个用户名和密码匹配。我有一个办公室集合,每个办公室文档包含许多用户

var builder = Builders<MnOffice>.Filter;
            var filter = builder.AnyEq(o => o.Users, new OfficeUser()
            {
                Username = username,
                Password = password
            });
            var office = await Offices.Find(filter).FirstOrDefaultAsync().ConfigureAwait(false);
            return office;

上面的查询返回null。尽管它应该得到结果。OfficeUser类有三个属性,用户名、密码、名称。Mongo强迫我在查询中匹配所有三个属性,所有我想要的是有2个属性匹配(用户名和密码)为了得到结果,怎么才能做到呢?没有好的文档。

谢谢!

MongoDb在Document's Collection中搜索只返回完全匹配的结果-为什么?

 var filter = builder.ElemMatch(o => o.Users, user => user.Username == username && user.Password == password);

使用ElemMatch解决了这个问题,但仍然不理解第一次尝试背后的逻辑