mongodb中存储的文档格式如下,实现查询fromdata下did和dvid为指定值的数据

{ "_id": { "$oid": "553f4a9facc494278f5ad1b0" },
"rid": "9eec7fbe8a6f4d17b02756fdbcefcc41",
"rname": "测试场景1",
"username": "zhaoptest",
"enable": 1,
"fromdata": [ { "did": "aaa", "dvid": "1", "opt": "3", "value": "44" },
{ "did": "bbb", "dvid": "1", "opt": "3", "value": "44" } ],
"todata": [ { "did": "aaa", "dvid": "2", "value": "3" },
{ "did": "ccc", "dvid": "2", "value": "3" } ]
}
使用db.device_rules.find({ "fromdata.did" : "bbb", "fromdata.dvid" : "1" })进行查询fromdata中did=bbb,dvid=1的数据
但当查询did=bbb,dvid=2时,仍能查出上面的结果,查询条件和数组中不同的文档进行了匹配! 利用条件操作符“$elemMatch”可以组合一组条件,并且还能达到的“点表示法”的模糊查询的效果,如下: db.device_rules.find({ "fromdata" : { "$elemMatch" : { "did" : "bbb", "dvid" : "2" } } })
使用morphia进行查询:

1. 针对 db.device_rules.find({ "fromdata.did" : "bbb", "fromdata.dvid" : "1" })

this.createQuery().field("fromdata.did").equal(fromDid).field("fromdata.dvid").equal(fromDvid).asList();

2 针对 db.device_rules.find({ "fromdata" : { "$elemMatch" : { "did" : "bbb", "dvid" : "2" } } })

FromData fd = new FromData();
fd.setDid(fromDid);
fd.setDvid(fromDvid);
return this.createQuery().field("fromdata").hasThisElement(fd).asList();

最新文章

  1. windows系统快捷操作の进阶篇
  2. ooofc.com域名备案问题导致无法正常访问临时解决方案
  3. DEDE仿站经常用到的基本标签和变量
  4. 【Apache运维基础(4)】Apache的Rewrite攻略(1)
  5. Odoo “坑” 系列之 XML中的布尔类型
  6. 老罗android开发视频教程 下载地址
  7. J2SE基础:1.类和对象基础
  8. C语言JSON-RPC
  9. WinFrom中使用WPF的窗体
  10. nginx中支持.htaccess并禁止php在特定目录无法运行
  11. Angular Universal(统一平台)笔记
  12. C# 列出进程
  13. 恢复制作了系统盘的U盘
  14. Kaggle(2):验证和过分拟合
  15. UART Receive FIFO and Receive Timeout
  16. dede自定义标签
  17. 2个版本并存的python使用新的版本安装django的方法
  18. Makefiles in Linux
  19. android:scaleType="matrix"布局文件载入图片时候的显示方式
  20. 20165202 2017-2018-2 《Java程序设计》第9周学习总结

热门文章

  1. codeforces之始
  2. 树莓派搭建web服务器(详细且良心)
  3. css 三角形的制作
  4. [翻译] 单例(Singleton)
  5. 设计模式:桥接(Bridge)模式
  6. 【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.1.类文件结构
  7. sqoop部署与使用
  8. GPRS研究(3):NO CARRIER错误的含义解释
  9. dba_tables、all_tables、user_tables
  10. 【我所认知的BIOS】—> uEFI AHCI Driver(8) — Pci.Read()