我是c#mongodb司机的新手。
我有一个包含以下结构的文档的集合。
{
_id : 5a424d61f5213516a0249323,
email : abc@gmail.com,
applications : [
{
applicationId : 5a3b54723629c20df8bcae8d,
applicationStatus: "Open",
type : "Private",
category : "Tech"
},
{
applicationId : 5a3b54723629c20df8bcaeasd,
applicationStatus: "Close",
type : "Public",
category : "Agri"
},
{
applicationId : 5a3b54723629c20df8bcajkl,
applicationStatus: "Open",
type : "Public",
category : "Business"
},
{
applicationId : 5a3b54723629c20df8bca852,
applicationStatus: "Close",
type : "Public",
category : "Agri"
},
]
}
我想获取所有不包含“Tech”类别的应用程序的文档。 简单来说,我想要除“应用”类别“Tech”之外的所有文档。
我尝试过以下查询,
db.users.Find(Builders<UserModel>.Filter.And(
Builders<UserModel>.Filter.ElemMatch(u => applications, a => a.category!= "Tech")
))
但它返回空白查询 有人可以教我如何为这类文件编写复杂的查询吗? 忽略我的查询,建议我完成这项工作的标准方法。
提前致谢。 :)
答案 0 :(得分:2)
您可以尝试使用Not
db.users.Find(Builders<UserModel>.Filter.Not(Builders<UserModel>.Filter.ElemMatch(u => applications, a => a.category == "Tech")))