我需要隐藏其isActive标志设置为false的所有用户相关数据 . 有许多集合我使用了DBRef类型的用户集合(大约14个集合),每个集合包含超过1000万条记录 .

让我借助例子更恰当地解释一下 .

假设我有两个集合:

用户

联系

用户集包含以下字段:

名字(字符串)

姓氏(String)

isActive(布尔)

联系人集合包含以下字段:

Contacter(User)声明为DBref类型 .

Contactee(User)声明为DBRef类型 .

ContactStatus(String)

现在我要触发一个查询,该查询将获取其所有联系人 ContactStatus = "Confirmed" && Contacter.isActive = true && Contactee.isActive = true

就mongodb而言,查询将是这样的:

db.Contacts.find({"ContactStatus" : "Confirmed", "Contacter.isActive" : true, "Contactee.isActive" : true});

但是当我在mongo shell中运行此查询时,它总是返回零记录 .

所以这里的问题是1)是否可以在DBRef的内部字段上触发查询? 2)如果没有,那我该怎么做呢 .

注意 - 在此阶段,我无法修改数据模型 . 在“in”查询的帮助下,我可以做到这一点 . 但它最终会在我需要隐藏该用户的地方增加一次往返 .

目前我使用的是mongodb-2.4.5和Spring-Data-MongoDB-1.2.3 jar

到目前为止我的代码是这样的 -

Criteria criteria = new Criteria();

criteria = criteria.where(Contact.CONTACT_REQUEST_STATUS).is(ContactRequestStatusEnum.ACCEPTED);

criteria = criteria.and(Contact.CONTACTER + "." + User.ACTIVE).is(Boolean.TRUE);

criteria = criteria.and(Contact.CONTACTEE + "." + User.ACTIVE).is(Boolean.TRUE);

Query q = new Query(criteria);

List contacts = Contacts.find(q, Contact.class);

dbref java_查询mongodb dbref内部字段相关推荐

  1. mongodb存list_查询 MongoDB 子文档的 List 字段

    [摘要] MongoDB 对于 List 结构中由若干字段组合而成的字符串数据有统计需求时,使用其 shell 脚本来实现有些复杂,而集算器 SPL 语言,则因拥有丰富的接口函数,实现就容易多了.若想 ...

  2. 阿里云DLA新功能来袭 查询MongoDB嵌套字段更方便

    背景 DLA之前对于MongoDB只支持简单类型的映射查询,对于嵌套字段无法直接查询,最近我们加入了对嵌套字段直接查询的支持,这篇文章给大家介绍一下. MongoDB嵌套字段查询详解 首先我们在Mon ...

  3. mongo go 查询指定字段_使用PyMongo查询MongoDB数据库!

    总览 我们将讨论如何使用PyMongo库查询MongoDB数据库. 我们将介绍MongoDB中的基本聚合操作. 介绍 随着互联网的全球普及,我们现在正在以前所未有的速度生成数据.因为执行任何类型的分析 ...

  4. NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段

    NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段 这里使用的是基于RESTful API的规范创建的请求地址 在Schema创建用户的时候可以使用select:fa ...

  5. mongodb @aggregation 返回字段映射不上_MongoDB---基于分布式文件存储的数据库(二)...

    MongoDB基础入门到高级进阶视频教程 [MongoDB] 六.Document 操作 在MongoDB中文档是指多个键及其关联的值有序地放置在一起就是文档,其实指的就是数据,也是我们平时操作最多的 ...

  6. php mongodb 子查询,MongoDB数组子查询elemMatch

    MongoDB数组子查询elemMatch 在 MongoDB数组子查询elemMatch详解 语法 db_name.collection_name.find({field:{$elemMatch:{ ...

  7. 方法:查询MongoDB数据库中最新一条数据(JAVA)

    使用JAVA语言查询MongoDB中某个数据库某个集合的最新一条数据: MongoCollection<Document> cpu = MongoClient.getDatabase(&q ...

  8. oracle查询blob模糊搜索,BLOB字段模糊查询

    1. BLOB字段模糊查询报错 blob字段直接用select   * from  table_name  where  column  like'%%'查找的时候是不能实现的,主要是字段类型不符.不 ...

  9. pymongo查询列表元素_使用PyMongo查询MongoDB数据库!

    作者|LAKSHAY ARORA 编译|Flin 来源|analyticsvidhya 介绍 随着互联网的普及,我们现在正以前所未有的速度生成数据.因为执行任何类型的分析都需要我们从数据库中收集/查询 ...

最新文章

  1. DEF CON 专题 | 溜门撬锁,暗黑市集,带你看世界最大的黑客狂欢
  2. 工业用微型计算机(7)-指令系统(4)
  3. ZooKeeper ZAB协议:崩溃恢复、消息广播
  4. eclipse pmd使用_使用您自己的规则在Eclipse中自定义PMD
  5. C语言项目:推箱子大战
  6. 向mysql中插入时间_Java向mysql中插入时间的方法
  7. BlackBerry 应用程序开发者指南 第一卷:基础--第9章 IT策略(Policy)
  8. 什么是计算机科学中的“本体论”
  9. C++ 如何改变鼠标光标位置
  10. c语言 signal作用,C语言中的signal函数
  11. 服务器复制文件出现io错误,win7系统复制文件时发生IO错误的解决方法
  12. 正则表达式(韩顺平讲解)
  13. 手把手教你批量剪辑视频
  14. ELTEK电源维修SMPS5000SIL易达整流模块维修概述
  15. Java 基础 利用数组来实现银行注册开户、存钱、取钱
  16. 当mybatis逆向工程遇上了数据库字段增加
  17. 迪桑特宣布彭于晏成为品牌代言人;福成股份“中央厨房”创造预制菜新理念 | 知消...
  18. 家用计算机需要安装哪些软件,新电脑需要安装哪些软件
  19. java如何输入2的31次方_续一: 如何优化Java程序:十进制转十六进制(2的31次方以内的正整数)...
  20. Data Vault2.0方法论之审查和改进-全面质量管理

热门文章

  1. python format 冒号_python之格式化输出
  2. 服务器上有涉密文件,涉密文件保密管理规定
  3. linux软件包管理 pdf,vSphere Storage Appliance 安装和管理 PDF
  4. 如何扩大缓存区_艾莱依首个自动化仓落地,库宝解决线边缓存难题
  5. 详解预训练模型、信息抽取、文本生成、知识图谱、对话系统技术
  6. 数据挖掘学习指南!!
  7. 如何与深度学习服务器优雅的交互?(长期更新)
  8. 深入理解 Objective-C:方法缓存
  9. 研讨会 | CCF TF 第 17 期:认知计算产业化落地
  10. 郑杰 | 如何拿回我们自己的医疗数据?