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

相关文章

来自专栏Golang语言社区

Go语言基于共享变量的并发

一个特定类型的方法和操作函数是并发安全的,那么所有它的访问方法和操作都是并发安全的。导出包级别的函数一般情况下都是并发安全的,package级的变量没法被限制在...

36411
来自专栏MongoDB

MongoDB基础概念与事务支持

MongoDB4.0新增了对事务的支持,本文首先介绍一些MongoDB的基础概念,后文会对4.0新增的事务功能进行解读

34020
来自专栏从零开始学 Web 前端

linux下实现进度条小程序

我们平常总会在下载东西或者安装软件的时候看到进度条,这里我们就在linux下实现这个进度条的功能。

1015
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之二

1615
来自专栏企鹅号快讯

Python的进程

进程 说明:本文是基于Py2.X环境, Python实现多进程的方式主要有两种:一种方法是使用os模块中的fork方法; 另一种是使用multiprocessi...

18610
来自专栏Golang语言社区

golang 原子计数,互斥锁,耗时

import "sync" import "sync/atomic" import "time"import "runtime" 1.runtime.Gosch...

3646
来自专栏逸鹏说道

C# 温故而知新: 线程篇(二) 上

线程池和异步线程 目录: 1 什么是CLR线程池? 2 简单介绍下线程池各个优点的实现细节 3 线程池ThreadPool的常用方法介绍 4 简单理解下异步线程...

3019
来自专栏企鹅号快讯

在.NET Core 中的并发编程

原文地址:http://www.dotnetcurry.com/dotnet/1360/concurrent-programming-dotnet-core 今...

2709
来自专栏cs

知识点回顾

1.0 java的集合 集合分为值value[collection],key-value[map]. 存储值的分为list,和set。list是线性表,包括循...

674
来自专栏Golang语言社区

Go语言基于共享变量的并发

一个特定类型的方法和操作函数是并发安全的,那么所有它的访问方法和操作都是并发安全的。导出包级别的函数一般情况下都是并发安全的,package级的变量没法被限制在...

2554

扫码关注云+社区