MongoDB介绍

MongoDB介绍

制作人:全心全意

MongoDB存储的是json对象(文档型存储)。

MongoDB将磁盘格式化为gridfs,在此文件格式上存储数据,存储的数据为二进制的json格式。

MongoDB引用了chrome独特的js引擎chrome v8,所以MongoDB有能力执行JS。

命令介绍

**bsondump:**导出二进制结构的备份文件

**mongo:**客户端

**mongod:**服务端

**mongodump:**整体数据库备份(二进制)

**mongoexport:**导出易识别的json文档或csv文档

**mongorestore:**数据库整体导入

**mongos:**路由器(集群时使用)

启动服务

./bin/mongod --dbpath 数据存储目录 --logpath 日志存储文件 --port --fork

--dbpath:数据存储目录

--logpath:日志存储目录及文件名

--port:运行端口(默认27017)

--fork:后台进程运行

常用命令

查看所有数据库

show databases;

  或

show dbs;

选择库

use 库名

查看当前数据库的collection

show tables;

  或

show collections;

创建数据库(隐式创建)

在MongoDB中隐式创建数据库,只需要直接切换到数据库中,使用该数据库,MongoDB会自动创建该数据库。

创建collection(支持隐式创建)

db.createCollection('名称');

删除collection(进入数据库中)

db.collection名.drop();

删除数据库(进入要删除的数据库)

db.dropDatabase();

数据操作

MongoDB中如果不指定主键_id,MongoDB会自动创建主键。

语法格式:

db.collection名.insert(json或数组)

增加单条数据

1db.stu.insert( 2 { 3 "_id":"1", 4 "name":"lisi", 5 "age":25, 6 } 7);

增加多条数据

1db.stu.insert([ 2 { 3 "_id":2, 4 "name":"wnagwu", 5 "age":22, 6 "sex":"男", 7 }, 8 { 9 "_id":3, 10 "name":"xiaohong", 11 "sex":"女" 12 } 13]);

语法格式:

db.collection名.remove(查询表达式,选项)

查询表达式:

查询表达式依然是个json对象

查询表达式匹配的行将被删除

如果查询表达式为空对象{},collection中的所有文档将被删除

选项:

是否只删除一行{justOne:true/false},默认为false

删除匹配的所有数据

1db.stu.remove( 2 { 3 "age":22, 4 } 5);

仅删除匹配的一条数据

1db.stu.remove( 2 { 3 "age":22, 4 },true 5);

语法格式:

db.collection名.update(查询表达式,新值,选项);

新值:

赋值表达式:

$set:修改某个列的值

$unset:删除某个列

$remove:重命名某个列

$inc:增长某个列

$setOnInsert:当upsert为true时,并且发生了insert操作时,可以补充的字段

选项:

upsert:没有匹配的行,则直接插入该行

multi:修改所有匹配结果,默认仅修改一条

语法格式:

仅显示一条匹配结果

db.collection名.findOne(查询表达式,查询的列);

显示全部匹配结果

db.collection名.find(查询表达式,查询的列);

查询表达式

$ne:不等于

{列名:{$ne:值}}

$in:取值的列表

{列名:{$in:[值1,值2...]}}

$nin:非取值的列表

{列名:{$nin:[值1,值2...]}}

$exists:查询含有指定字段的文档

{列名:{$exists:1}}

and的使用

{条件1,条件2...}

or的使用

{$or:[条件1,条件2...]}

$where:遍历每一条数据采用js语法查询

{$where:"this.列名 == 值 && ..."}

不推荐使用,效率极低

分组操作

语法格式:

1db.collection名.aggregate([ 2 {$match:{查询条件}}, 3 {$group:{_id:"进行分组的字段名",操作后返回结果的字段别名:{操作函数:"$操作字段名"}}} 4])
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python操作MongoDB

前言MongoDB是由C语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,非常适合JSON数据存储,故受到广大爬虫程序员的青睐。现在,我们就来看看Python3下MongoDB的存储操作。准备工作请确保已经安装好了MongoDB并启动了服务。可以参考https://www.helloworld.ne