MongoDb 在文档集合中搜索 returns 只有完全匹配的结果 - 为什么?
MongoDb Search in Document's Collection returns only fully matched result - Why?
我正在尝试查找用户名和密码匹配的用户。
我有一个办公室集合,每个办公室文档都包含许多用户
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;
以上查询returns 为空。虽然它应该得到结果。
OfficeUser class 具有三个属性,
用户名、密码和姓名。
Mongo 强制我所有三个属性都将在查询中匹配,
我想要的只是有 2 个属性匹配(用户名和密码)
为了得到结果,
怎样才能做到呢?没有好的文档。
谢谢!
var filter = builder.ElemMatch(o => o.Users, user => user.Username == username && user.Password == password);
解决了使用 ElemMatch 的问题,但仍然不理解第一次尝试背后的逻辑。
我正在尝试查找用户名和密码匹配的用户。 我有一个办公室集合,每个办公室文档都包含许多用户
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;
以上查询returns 为空。虽然它应该得到结果。 OfficeUser class 具有三个属性, 用户名、密码和姓名。 Mongo 强制我所有三个属性都将在查询中匹配, 我想要的只是有 2 个属性匹配(用户名和密码) 为了得到结果, 怎样才能做到呢?没有好的文档。
谢谢!
var filter = builder.ElemMatch(o => o.Users, user => user.Username == username && user.Password == password);
解决了使用 ElemMatch 的问题,但仍然不理解第一次尝试背后的逻辑。