Chinaunix首页 | 论坛 | 博客
  • 博客访问: 94188
  • 博文数量: 22
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-20 16:59
个人简介

重点关注互联网、分布式、消息队列、优秀的开源框架,向企业类架构方向发展

文章分类

全部博文(22)

文章存档

2015年(22)

我的朋友

分类: NOSQL

2015-07-08 13:18:01


  简单查询,只查询一个字段:
       db.Q2.find({ "custodian.asOrganizationPartOf" : "放射科" });

  多条件查询,与关系型数据库多条件查询一样:
      db.Q2.find({ "custodian.asOrganizationPartOf" : "放射科", "age" : { "$gt" : 0, "$lt" : 30 }, "sex" : "男", "providerOrganization" : "医大一院" });   150毫秒左右  服务器测试
      其中 "age" : { "$gt" : 0, "$lt" : 30 },是范围查询,0~30之间的数据会被查询出来。
 in查询:
      db.Q2.find({ "age" : { "$in" : [20, 21] }, "providerOrganization" : "医大二院" });

 union all查询:
      db.Q2.find({ "$or" : [{ "age" : { "$in" : [20, 21, 22, 23] } }, { "custodian.wholeOrganization" : "床位号0" }] });
      将符合任意一个条件的数据合并到一起。
  
  利用正则表达式进行模糊查询:
        db.Q2.find({ "custodian.asOrganizationPartOf" : /^门/ });  以门开头  
这种查询必须配合索引使用,否则查询速度会很慢。
  数组查询:
        {array:{$all:["门诊"]}}
  嵌套文档查询
        { "custodian.asOrganizationPartOf" : "放射科" }
 提高查询速度有以下几个方面:
      1.合理建立索引
      2.限定返回结果集
      3.按照业务合理规划集合,类似数据库分表方案,将业务拆分到多个集合中。

阅读(2299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~