Mongo查询操作

来源:互联网 发布:雷克萨斯rx200t 知乎 编辑:程序博客网 时间:2024/06/12 00:43

​Mongo是一个开源免费的、面向文档型的、跨平台的数据库。被划分为NoSQL数据库,在Mongo中数据是以json格式组织的。

初识Mongo



Mongo类似Mysql,下载安装后,可以通过第三方GUI可视化管理工具来使用。平时使用的Mongobooster就不错,下载安装比较方便。举个例子:

有json个格式的数据


存储在Mongo中后,可以通过Mongobooster看到比较友好的界面:


Mongo常用查询



find查找符合条件的文档


db.person.find({'result.name' : 'abccc'})

查找result.name的值等于abccc的文档,在mongobooster中可以通过Json、documents以及table三种形式展示出结果。


in操作判断是否为空值


db.person.find({'result.name':{$in:[null]}})

db.person.find({'result.aff.desc':{$in:[null], $exists:true}})

通过符号'.'来查询子文档中的字段,第一行代码是查询result子文档下name字段缺失的文档。第二行代码是返回,result子文档aff的desc字段存在,但值是空的文档


ne操作判断字段值不等于***


db.Address.find({'country':{$ne:'China'}}).count()

以上代码用于判断country值不等于China的docs的个数


返回值不带‘_id’值


mongo的返回值一般都是默认返回id的信息的。要想返回值中指定不返回id信息,如下代码可以实现输出结果包括parse_location字段,而不包括_id字段:

db.merge_4.find({'parse_location':/洲/}:{'parse_location':1,'_id':0})


返回唯一值


db.merge_4.distinct('parse_location',{'parse_location':/洲/})


欢迎关注微信公众号“数据分析师手记”