MongoDb 简单介绍

作者:吴欣伟

最近一段时间使用mongodb做媒资数据的接入,简单介绍一下mongodb的特性和语法。

1、mongodb特点

mongodb是一个基于分布式文件存储的数据库。由 C++ 语言编写。是非关系数据库当中功能最丰富,最像关系数据库的。它将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

mongodb具有自动分片、支持完全索引、支持复制、自动故障处理、高效存储二进制大对象 (比如照片和视频)的特点。mongodb查询方式更多样,可以查询文档中内嵌的对象及数组。mongodb支持mapreduce,但必须使用javascript语法,从而导致一个实例只能运行一个MapReduce线程。mongodb支持多种语言。

2、mongodb缺点

不支持事务。

不支持join,如果有join的需求,请重新设计你的mongodb或者采用mysql。

3、语法

连接:默认没有密码。
创建数据库: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调用

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

MySQL 数据库类型从 InnoDB 转换为 MyISAM

1726
来自专栏性能与架构

Mysql 8.0 新增特性

1. 数据字典 新增了事务型的数据字典,用来存储数据库对象信息 之前,字典数据是存储在元数据文件和非事务型表中的 2. 账号权限管理 添加了对 “角色” 的支持...

36511
来自专栏同步博客

MySQL注入与防御

  在一个应用中,数据的安全无疑是最重要的。数据的最终归宿都是数据库,因此如何保证数据库不被恶意攻击者入侵是一项重要且严肃的问题!

1522
来自专栏c#开发者

Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功能。

技术 PL/SQL 提高文件操作功能 作者:Steven Feuerstein Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功...

3354
来自专栏余林丰

再说单例模式的线程安全问题

今天和同事聊起了单例模式的线程安全,我说如果不做任何措施,单例模式在多线程下是不安全的,得到的“单例”实际上并不是单例。但是为什么不是单例呢?由此我上网查了一下...

1946
来自专栏微信公众号:Java团长

彻底解决MySQL中文乱码

mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

1912
来自专栏青玉伏案

Swift3.0服务端开发(五) 记事本的开发(iOS端+服务端)

前边以及陆陆续续的介绍了使用Swift3.0开发的服务端应用程序的Perfect框架。本篇博客就做一个阶段性的总结,做一个完整的实例,其实这个实例在《Swift...

2287
来自专栏xingoo, 一个梦想做发明家的程序员

基于ELK的数据分析实践——满满的干货送给你

很多人刚刚接触ELK都不知道如何使用它们来做分析,经常会碰到下面的问题: 安装完ELK不知从哪下手 拿到数据样本不知道怎么分解数据 导入到elastics...

4037
来自专栏我和PYTHON有个约会

33.企业级开发进阶6:数据库操作

python作为一个编程语言,在开发B/S或者C/S结构的软件时,不可避免的会设计到和数据库之间的交互操作,和其他高级的面向对象的语言一样,Python在操作数...

992
来自专栏MasiMaro 的技术博文

OLEDB 参数化查询

一般情况下,SQL查询是相对固定的,一条语句变化的可能只是条件值,比如之前要求查询二年级学生信息,而后面需要查询三年级的信息,这样的查询一般查询的列不变,后面的...

1163

扫码关注云+社区