概述

大家对数据库肯定不陌生,肯定也有很多人用过MySQL,但是在用MySQL的时候各种建表,写表之间的关联让人非常头疼。

MongoDB也是一种数据库,但是它不是用表,而是用集合来装数据的,我对这种数据储存方式很感兴趣。所以我根据MongoDB3.6的官方说明文档整理了MongoDB入门级用法,供自己开发时参考,相信对其他人也有用。

这是慕课网上MongoDB的课程:mongoDB入门篇

这是MongoDB官方说明文档:The MongoDB Manual

什么是MongoDB

Mongodb是面向文档数据库(Document Oriented Databases),同时,它也是“NoSQL数据库”。

它非常容易扩展,并且速度很快。

MongoDB的安装

1.去mongodb的官网http://www.mongodb.org/downloads下载msi安装包(CommunityServer版本)。安装的默认路径是:C:\Program Files\MongoDB\Server\3.6\bin

2.为了启动mongodb方便,将mongod.exe路径加入环境变量。电脑->属性->高级系统设置->环境变量,在path里加入默认路径:C:\Program Files\MongoDB\Server\3.6\bin

3.在D盘新建一个mongodb文件夹用来放数据文件,并在mongodb文件夹下建立data,logs文件夹,在logs文件夹下建立mongodb.log文件

4.以管理员启动cmd,并且输入:mongod --dbpath D:\mongodb\data\ --logpath D:\mongodb\logs\mongodb.log --install --serviceName"MongoDB"

5.以管理员启动cmd,net start mongodb启动mongodb服务;mongo 127.0.0.1:27017进入mongo数据库;net stop MongoDB关闭mongodb服务

数据库操作

1.创建并进入数据库

use DATABASE_NAME

创建名字为TEST的数据库,并进入数据库;如果数据库已存在,则直接进入数据库。

use TEST

2.显示数据库。

show dbs

显示所有数据库

show dbs

3.删除数据库

db.dropDatabase()

删除TEST数据库

use TEST
db.dropDatabase()

集合操作

1.创建集合

db.createCollection(name, options)

创建集合名imooc的数据库

db.createCollection("imooc")

2.查看集合。

show collections

查看所有集合

show collections

3.删除集合

db.COLLECTION_NAME.drop()

删除集合imooc

db.imooc.drop()

数据操作

1.create操作

db.collection.insertOne()

db.collection.insertMany()

db.collection.insert()

写入单条和多条数据:

db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

2.Read操作

db.collection.find()

查找status为"D"的数据,并且显示5条。

db.inventory.find( { status: "D" } ).limit(5)

查找status为"D"的数据,并且以格式化显示。

db.inventory.find( { status: "D" } ).pretty()

查找status为"A"或"D"的数据。

db.inventory.find( { status: { $in: [ "A", "D" ] } } )

查找status为"A"并且qty为30的数据。

db.inventory.find( { status: "A", qty: 30} )

查找status为"A"或者qty为30的数据。

db.inventory.find( { $or: [ { status: "A" }, { qty:30 } ] } )

查找status为"A"的第二条数据。

db.inventory.find( { "status.1":  "A" } )

查找instock属性中qty为20的数据。(instock属性是一个集合)

db.inventory.find( { 'instock.qty': 20 } )

查找instock属性中qty为20的第一条数据。(instock属性是一个集合)

db.inventory.find( { 'instock.0.qty': 20 } )

查找status为"A"的数据,并且只返回_id,item和status字段

db.inventory.find( { status: "A" }, { item: 1, status: 1 } )

查找status为"A"的数据,并且只返回item字段,不返回status和_id字段

db.inventory.find( { status: "A" }, { item: 1, status: 0, _id: 0 } )

查找status为"A"的数据,并且只返回_id和item字段,以及size字段的uom属性

db.inventory.find({ status: "A" }, { item: 1, "size.uom": 1 })

查找item为null或者不存在item属性的数据

db.inventory.find( { item: null } )

查找item属性为null的数据

db.inventory.find( { item : { $type: 10 } } )

查找不存在item属性的数据

db.inventory.find( { item : { $exists: false } } )

相当于db.users.find( { type: 2 } ),因为结果返回一个循环指针

var myCursor = db.users.find( { type: 2 } );
myCursor

3.Update操作

db.collection.updateOne()

db.collection.updateMany()

db.collection.replaceOne()

db.collection.update()

将item为"paper"的第一条数据的size.uom改为"cm",status改为"P"

db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" },
}
)

将item为"paper"的所有数据的size.uom改为"cm",status改为"P"

db.inventory.updateMany(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" },
}
)

把item为"paper"的第一个数据替换为后一个数据

db.inventory.replaceOne(
{ item: "paper" },
{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)

4.delete操作

db.collection.deleteOne()

db.collection.deleteMany()

db.collection.remove()

删除第一个status为"D"的数据;删除所有status为"D"的数据

db.inventory.deleteOne( { status: "D" } )
db.inventory.deleteMany( { status: "D" } )

MongoDB 用法入门(windows)①的更多相关文章

  1. [你必须知道的NOSQL系列]专题一:MongoDB快速入门

    一.前言 现在越来越多的公司开始采用非关系数据库了,并且很多公司的面试都要求面试者有MongoDB的使用经验,至于非关系数据库与关系型数据库之间的区别大家可以自行百度.但是作为程序员的我们,既然大部分 ...

  2. MongoDB(2):入门

    MongoDB入门教程(包含安装.常用命令.相关概念.使用技巧.常见操作等) http://www.jb51.net/article/51514.htm 这篇文章主要介绍了MongoDB入门教程,包含 ...

  3. MongoDb 快速入门教程

    文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...

  4. MongoDB安装配置(Windows)

    官网下载:https://www.mongodb.com/ 百度经验:https://jingyan.baidu.com/article/d5c4b52bef7268da560dc5f8.html 官 ...

  5. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  6. MongoDB配置服务--MongoDB安装成为windows服务

    MongoDB安装成为windows服务 1.打开命令提示符(最好以管理员的身份打开),然后输入: mongod --logpath "D:\MongoDB\data\log\logs.tx ...

  7. 课程上线 -“新手入门 : Windows Phone 8.1 开发”

    经过近1个月的准备和录制,“新手入门 : Windows Phone 8.1 开发”系列课程已经在Microsoft 虚拟学院上线,链接地址为:http://www.microsoftvirtuala ...

  8. 将MongoDB设为Windows服务

    转自“简时空”:<将MongoDB设为Windows服务> 1.前言 MongoDB 安装.配置完后,必须先启动它,然后才能使用它.通常有3中方式来启动数据库实例:① 通过命令行方式:② ...

  9. MongoDB(NoSQL) 入门

    一.简介 NoSQL数据库因其可扩展性使其变得越来越流行,利用NoSQL数据库可以给你带来更多的好处, MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库. 本文主要讲述MongoD ...

随机推荐

  1. java学习--构造方法

    构造方法的作用:创建对象并初始化对象 定义规则:构造方法名与类名相同且没有返回值.(构造方法不需要设置返回值类型,包括void) 在没有定义构造方法是,编译器会自动为类添加形如  类名 () {}  ...

  2. Javascript面试题收集

    第一部分“ 来源: http://bbs.miaov.com/forum.php?mod=viewthread&tid=6974 1.var a = b = 1; ——这样定义变量的隐患 fu ...

  3. IP路由配置之---------debugging调试

    实验设备:华三设备N台加一个PC 步骤一,打开屏幕输出开关,开启控制台对系统信息的监视功能 <H3C>terminal debugging #<H3C>terminal mon ...

  4. VueJs学习笔记

      在cmd下,进入目录之后 cd 到项目目录下 1 安装node cnpm install   2 启动或者调试 cnpm start (或是npm run dev) 3 上线: npm run b ...

  5. poj 2349 求最小生成树里面第m长的边

    题目链接:https://vjudge.net/problem/POJ-2349 题意: 题目就是要我们找到一个最小的值D,把图里面所有大于D的边去掉之后剩余的连通分支的数量为S.这个就是找这个图里面 ...

  6. Macro_Average和Micro_Average准则的选择标准

  7. MAC book 无法删除普通用户的解决办法

    1来自苹果官网 macOS Sierra: 删除用户或群组 如果您是管理员,当您不想再让某些用户访问 Mac 时,可以删除他们.您也可以删除不想要的群组. 删除用户时,您可以存储该用户的个人文件夹(包 ...

  8. Pycharm中选择Python解释器

    新建项目后,有时候Pycharm找不到Python解释器,如果找不到的话,就会报错.报错信息: No python interpreter configured for the project 找到P ...

  9. 代码之髓读后感——容器&并发

    容器 单个地址存放单个数据,但是如果有多个数据,而这些数据互相关联,则我们更希望的是将他们能够更好的在内存中组织在一起.于是便出现了容器的概念. 在不同的语言中,容器的名称不同,性质各异.比如,C 语 ...

  10. php数组函数有哪些操作?php数组函数的应用

    PHP 的数组是一种很强大的数据类型,与此同时 PHP 内置了一系列与数组相关的函数可以很轻易的实现日常开发的功能.但是我发现好像很多小伙伴都忽略了内置函数的作用(比如我自己就编写过一些有关数组操作的 ...