作者:吴欣伟
最近一段时间使用mongodb做媒资数据的接入,简单介绍一下mongodb的特性和语法。
1、mongodb特点
mongodb是一个基于分布式文件存储的数据库。由 C 语言编写。是非关系数据库当中功能最丰富,最像关系数据库的。它将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
mongodb具有自动分片、支持完全索引、支持复制、自动故障处理、高效存储二进制大对象 (比如照片和视频)的特点。mongodb查询方式更多样,可以查询文档中内嵌的对象及数组。mongodb支持mapreduce,但必须使用javascript语法,从而导致一个实例只能运行一个MapReduce线程。mongodb支持多种语言。
2、mongodb缺点
不支持事务。
不支持join,如果有join的需求,请重新设计你的mongodb或者采用mysql。
3、语法
代码语言:txt复制连接:默认没有密码。
创建数据库:use data_base_name,如果不存在这个数据库则创建,存在则切换到这个数据库
查看所有数据库:show dbs
删除数据库:db.dropDataBase()
创建表并插入文档:db.table_name.insert(col_text),col_text是一条json记录
查询数据表记录:db.table_name.find(),查询一条记录:db.table_name.findOne()
删除表:db.table_name.drop(),删除表里的所有记录:db.table_name.remove({})
查询条数:db.table_name.count()
添加索引:db.table_name.ensureIndex({"b_create_time":1}),给b_create_time字段添加索引
limit和skip:db.table_name.find({column_id:1}).limit(2).skip(2)
排序:db.table_name.find().sort({ftime:1}),按ftime排序,1是升序,-1是降序
条件查询语句大于小于:db.table_name.find({"b_create_time":{"$gte":"2017-07-01 00:00:00", "$lte":"2017-07-01 01:00:00"}}),过滤b_create_time在某个时间段内
条件查询语句and:db.table_name.find({"b_create_time":"2017-09-01 00:00:00","column_id":"111222"}),多个字段间用逗号隔开
条件查询语句or:db.table_name.find({$or:[{"b_create_time":"2017-09-01 00:00:00"},{"column_id": "111222"}]})
4、其他
mongodb大小写敏感
一般我在需要定时调度批量语句时通过把sql语句写在js中通过bash调用