码迷,mamicode.com
首页 > 数据库 > 详细

mongodb查询内嵌文档

时间:2015-04-28 20:35:39      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

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进行查询:

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

 

mongodb查询内嵌文档

标签:

原文地址:http://www.cnblogs.com/iiot/p/4463873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!