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 条评论
登录 后参与评论

相关文章

来自专栏智能大石头

充血模型的ORM能做什么?——ORM组件XCode(十八般武艺)

ORM组件XCode(十八般武艺) 之前,XCode总是若隐若现,耐性好的同学想知道它还有啥特点,沉不住气的则认为不过是CURD耳! XCode开发模式是灵魂,...

1889
来自专栏性能与架构

Mysql 8.0 新增特性

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

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

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

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

3607
来自专栏大学生计算机视觉学习DeepLearning

新手 php连接数据库大概。简单过程浅析以及遇到的问题分析

1426
来自专栏青玉伏案

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

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

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

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

1636
来自专栏c#开发者

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

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

3314
来自专栏同步博客

MySQL注入与防御

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

1152
来自专栏沃趣科技

其他混杂存储过程 | 全方位认识 sys 系统库

在上一篇《用于查看配置的存储过程 | 全方位认识 sys 系统库》中,我们介绍了sys 系统库中用于查看performance_schema配置信息的快捷存储过...

1203
来自专栏你不就像风一样

Hibernate各种主键生成策略与配置详解

主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对...

922

扫码关注云+社区