Mongodb C# 复杂查询 [英] Mongodb C# complex query

查看:23
本文介绍了Mongodb C# 复杂查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 C# mongodb 驱动程序的新手.

I'm kind of new to c# mongodb driver.

我有一个集合,其中包含具有以下结构的文档.

I have a collection which contains documents with following structure.

{
  _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"的文档之外的所有文档.

I want to get all the documents which doesn't contain an application with category "Tech". In simple terms, I want all documents except the ones with application of category "Tech".

我试过以下查询,

db.users.Find(Builders<UserModel>.Filter.And(
    Builders<UserModel>.Filter.ElemMatch(u => applications, a => a.category!= "Tech")
))

但它返回空白查询有人可以教我如何为此类文档编写复杂的查询吗?忽略我的查询,建议我完成这项工作的标准方法.

But it returns blank query Can someone teach me how to write complex query for this type of documents? Ignore my query, Suggest me standard way to get this done.

提前致谢.:)

推荐答案

你可以试试用 Not

db.users.Find(Builders<UserModel>.Filter.Not(Builders<UserModel>.Filter.ElemMatch(u => applications, a => a.category == "Tech")))

这篇关于Mongodb C# 复杂查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆