morphia查询mongodb内嵌文档
2015-04-28 19:30
423 查看
mongodb中存储的文档格式如下,实现查询fromdata下did和dvid为指定值的数据
使用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" })
2 针对 db.device_rules.find({ "fromdata" : { "$elemMatch" : { "did" : "bbb", "dvid" : "2" } } })
{ "_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();
相关文章推荐
- morphia查询mongodb内嵌文档-数组查询$elemMatch|hasThisElement实例
- 学习MongoDB--(4-2):MongoDB查询(数组、内嵌文档和$where)
- mongoDB内嵌文档查询
- MongoDB内嵌文档查询
- Mongodb内嵌文档的查询
- MongoDB查询(数组、内嵌文档和$where)
- mongodb数组与内嵌文档查询
- mongodb查询内嵌文档
- Spring Data MongoDB 五:进阶文档查询(分页、Morphia)(二)
- MongoDB——$elemMatch(内嵌文档查询匹配)
- mongodb 查询内嵌文档
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
- 【MongoDB学习笔记18】MongoDB的查询:find查询内嵌文档
- mongodb 内嵌文档多条件查询($elemMatch)
- MongoDB查询(数组、内嵌文档和$where)
- MongoDB查询内嵌文档
- 学习MongoDB--(4-2):MongoDB查询(数组、内嵌文档和$where)
- MongoDB查询(数组、内嵌文档和$where)
- C# mongodb中内嵌文档数组条件查询