mongo与关系型数据库的概念对比,区分大小写,_id为主键。

一、数据库操作

>show dbs或者show databases   #查看所有数据库

>use dbname    #创建和切换数据库(如果dbname存在则切换到该数据库,不存在则创建并切换到该数据库;新创建的数据库不会显示,需要插入记录才会显示)

>db.dropDatabase()  #删除数据库(需要先use进入到需要删除的数据库)

二、集合操作

>show collections或者show tables  #查看集合(需要先use进入数据库)

>db.createCollection(集合名字,参数)   #创建集合

>db.集合名.drop()   #删除集合

三、文档操作

在对文档做操作时,文档的字段名可以加引号,也可以不加引号。

1.插入文档 db.集合名.insert(文档)

如果集合在该数据库中不存在会先创建集合;文档为字典形式,可以是单个的字典,也可以是由字典组成的列表

>db.col.insert({
title: 'MongoDB教程',
description: 'MongoDB是一个Nosql数据库',
by: '菜鸟教程',
url: 'https://www.runoob.com/mongodb/mongodb-tutorial.html',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
}) >db.col.insert({
title: 'MySQL教程',
description: 'MySQL是一个sql数据库',
by: '菜鸟教程',
url: 'https://www.runoob.com/mysql/mysql-tutorial.html',
tags: ['MySQL', 'database', 'SQL'],
likes: 200
})

插入文档也可以使用db.集合名.save(document) 命令,如果不指定 _id字段save() 方法类似于insert() 。

2.查询文档

db.集合名.find(查询条件,筛选列).pretty() ,查询条件和筛选列都通过字典形式表达

查询条件筛选行:多个条件and查询:find({'k1':'v1','k2':'v2',...}),相当于关系型数据库中的where k1=v1 and k2=v2 and ...

查询条件筛选行:多个条件or查询:find({ $or:[ {'k1':'v2'},{'k2':'v2'},...] }),相当于关系型数据库中的where k1=v1 or k2=v2 or

删选列:{'_id':0,'k1':1,'k2':1...},1表示返回0表示不返回,_id如果不指定为0默认表示返回,相当于关系型数据库中的select field1,field2,... from

在指定的所有列中,除了_id其他所有的值要么都为1,表示指定列返回未指定列不返回,要么都为0表示指定列不返回其他列返回

限定返回结果的数量:limit(n),返回查询结果的前n条

排序:sort({'key':1}),按照key字段排序,值为1则升序排,-1则降序排

find是以非结构化的形式显示所有文档,加上pretty()以结构化的形式显示,对应的findOne方法返回第一个满足条件的文档

> db.col.find({'title':'MongoDB教程'}).pretty()
{
"_id" : ObjectId("5d2e94f240515ad8a4693240"),
"title" : "MongoDB教程",
"description" : "MongoDB是一个Nosql数据库",
"by" : "菜鸟教程",
"url" : "https://www.runoob.com/mongodb/mongodb-tutorial.html",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}

mongo也支持逻辑查询,

例如

>db.col.find({'likes':{$gt:200,$lte:200}}).sort({'likes':1})

db.集合名.distinct(k)

获取所有不重复的k字段的值

3.更新文档

db.集合名.update(查询条件,更新操作,{upsert: <boolean>,multi: <boolean>,writeConcern: <document>})

  • 更新操作:形式为{ $set:{key:value} }
  • upsert : 可选,表示如果要update的记录不存在是否将其插入为新记录,默认是false不插入,true则插入。
  • multi : 可选,表示是否更新所有满足条件的记录,默认是false只更新找到的第一条记录,true则将满足条件的所有记录全部更新。
  • writeConcern :可选,抛出异常的级别。
> db.col.update({by:'菜鸟教程'},{$set:{likes:500}},{upsert:true,multi:true})
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

db.集合名.save(文档)

如果不传入_id,则该方法类似insert(),会插入一个文档

如果传入_id,则会对_id进行判断,如果要save的记录在原集合中存在,则按照内容对已存在的文档进行更新,如果不存在则进行插入也类似insert()。

> db.col.save({
"_id" : ObjectId("5d2e960d40515ad8a4693241"),
title: 'Python教程',
description: 'Python是一种解释型、面向对象、动态数据类型的高级程序设计语言',
by: '菜鸟教程',
url: 'https://www.runoob.com/python3/python3-tutorial.html',
tags: ['Python', '开发', '编程'],
likes: 1000
 })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
db.col.save({
"_id" : ObjectId("5d2e960d40515ad8a4693250"),
title: 'HTML',
description: '是一种用于创建网页的标准标记语言',
by: '菜鸟教程',
url: 'https://www.runoob.com/html/html-tutorial.html',
tags: ['HTML', '前端', '编程'],
likes: 300
})
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0 })

4.删除文档 db.集合名.remove(queryjustOne,writeConcern )

  • query :(可选)删除文档的条件,用字典形式表示。
  • justOne : (可选)如果设为 true 或 1,只删除一个文档,不设置该参数使用默认值 false,删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。
>db.col.remove({by:'菜鸟教程'},1)
WithResult({"nRemoved":1})
>db.col.remove({by:'菜鸟教程'})
WithResult({"nRemoved":2})

db.col.remove({})删除所有文档

MongoDB基本使用方法的更多相关文章

  1. MongoDB中insert方法、update方法、save方法简单对比

    MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...

  2. Linux安装mongoDB步骤和方法

    Linux安装mongoDB步骤和方法 下载mongoDB数据库 mongodb-linux-x86_64-3.0.15.tgz 存放到linux文件夹中 ftp软件直接拖上去 解压文件夹(解压后,会 ...

  3. MongoDB 查询 $关键词 方法目录

    MongoDB $关键字 关系比较符号 $lt $lte $gt $gte $ne MongoDB 查询$关键字 $in $or $all MongoDB limit 选取 skip跳过 sort排序 ...

  4. 在windows7 32ibt安装MongoDB数据库的方法及连接失败解决方案

    参考 https://www.cnblogs.com/cnblogs-jcy/p/6734889.html http://yunkus.com/mongodb-install-config-in-wi ...

  5. mongodb 常见问题处理方法收集

    问题1:非正常关闭服务或关机后 mongod服务无法正常启动 在使用中发现mongodb 的服务可能因为非正常关闭而启动不了,这时我们通过 删除data目录下的 *.lock文件,再运行下/mongo ...

  6. MongoDB 镜像配置方法

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. 配置方法 安装 ...

  7. PHP 操作mongodb api大部分方法

    <?php /* PHP mongodb * 全部curd操作 * @author:xiaojiang * @date: 2014-10-27 */ //查看 mongo类版本 1.30 以后版 ...

  8. mongodb的安装方法

    下载安装 mongodb官网下载地址:https://www.mongodb.org/downloads#produc...直接下载.msi文件并安装到指定目录即可.我的安装路径是D:\mongodb ...

  9. mac下设置mongodb开机启动方法

    Mac OS 的开机启动方式 launchd 是 Mac OS 下用于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第一个进程.其实它的作用就是我们平时说的守护进程,简单来说,用户守 ...

随机推荐

  1. 如何在Linux下使用Tomcat部署Web应用(图文)

    学习Java必不可少的视同Tomcat,但是如果不会使用tomcat部署项目,那也是白扯,在这里教大家如果在Linux系统下视同Tomcat部署Web应用.   工具/原料   Apache-tomc ...

  2. 栈的顺序存储和链式存储c语言实现

    一. 栈 栈的定义:栈是只允许在一端进行插入或删除操作的线性表. 1.栈的顺序存储 栈顶指针:S.top,初始设为-1 栈顶元素:S.data[S.top] 进栈操作:栈不满时,栈顶指针先加1,再到栈 ...

  3. Taro 3 正式版发布:开放式跨端跨框架解决方案

    作者:凹凸曼 - yuche 从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验.今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Tar ...

  4. 一个很酷炫也挺实用的JS库leader-line

    简单粗暴,直入主题,看看效果再说. 是不是这效果挺棒?这样的效果在做系统时,可以有很多的应用,可以让枯燥的页面生动起来. 具体效果,大家可以上这个搜索网站Mag[i]上面看,切身体会一下. 这是一个开 ...

  5. MysqlException: max pool size was reached.

    2019-09-09 08:22:08.620 +00:00 [ERR] Connection id "0HLPKVK52H2OU", Request id "0HLPK ...

  6. Demo_2:Qt实现猜字小游戏

    1  环境 系统:windows 10 代码编写运行环境:Qt Creator 4.4.1 (community) Github: 2  简介 参考视频:https://www.bilibili.co ...

  7. 虚拟机中Linux环境搭建

    Linux系统搭建 作为一名软件测试资深工程师,在日常工作中离不开对测试环境的操作.我们测试的软件,系统都是部署在linux系统环境上,我们掌握Linux系统的日常操作是非常必要的.那么在学习Linu ...

  8. CF 1912 A NEKO's Maze Game

    题目传送门 题目描述 输入 输出 样例 样例输入 样例输出 Yes No No No Yes 一句话题意:2*n的迷宫,从(1,1)出发到(2,n),初始时全部的都是地面,每次询问会把一个地面给变成熔 ...

  9. 深入浅出了解CDN

    背景: 本文公众号来源:漫话编程 虎牙直播2000W+人在线观看,直播间还不卡,据了解,2018年1月,阿里云为虎牙提供了边缘节点服务(ENS).基于阿里云ENS,可以轻松地将业务模块放到边缘运行,在 ...

  10. MySQL 快速删除大量数据(千万级别)的几种实践方案

    笔者最近工作中遇见一个性能瓶颈问题,MySQL表,每天大概新增776万条记录,存储周期为7天,超过7天的数据需要在新增记录前老化.连续运行9天以后,删除一天的数据大概需要3个半小时(环境:128G, ...