Mongodb C#复杂查询
我对c#mongodb司机有点陌生 我有一个集合,其中包含具有以下结构的文档Mongodb C#复杂查询,c#,database,mongodb,mongodb-query,.net-core,C#,Database,Mongodb,Mongodb Query,.net Core,我对c#mongodb司机有点陌生 我有一个集合,其中包含具有以下结构的文档 { _id : 5a424d61f5213516a0249323, email : abc@gmail.com, applications : [ { applicationId : 5a3b54723629c20df8bcae8d, applicationStatus: "Open", type
{
_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”类应用程序的文档。
简单地说,我想要所有的文件,除了那些应用“技术”类别的文件
我尝试了以下查询
db.users.Find(Builders<UserModel>.Filter.And(
Builders<UserModel>.Filter.ElemMatch(u => applications, a => a.category!= "Tech")
))
db.users.Find(Builders.Filter.And(
Builders.Filter.ElemMatch(u=>applications,a=>a.category!=“Tech”)
))
但它返回空白查询
有人能教我如何为这类文档编写复杂的查询吗?
忽略我的疑问,建议我完成这项工作的标准方法
提前感谢。:) 您可以尝试使用Not
db.users.Find(Builders<UserModel>.Filter.Not(Builders<UserModel>.Filter.ElemMatch(u => applications, a => a.category == "Tech")))
db.users.Find(Builders.Filter.Not(Builders.Filter.ElemMatch(u=>applications,a=>a.category==“Tech”))
我想使用Linq会更容易些,但不确定您是否可以在项目中使用它。我用Linq尝试过,但没有效果。你在关注我的问题。这是错误的。如果我在where子句中使用where子句,Mongodb c#driver会抛出一个错误。