MongoDB 用法入门(windows)①
概述
大家对数据库肯定不陌生,肯定也有很多人用过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)①的更多相关文章
- [你必须知道的NOSQL系列]专题一:MongoDB快速入门
一.前言 现在越来越多的公司开始采用非关系数据库了,并且很多公司的面试都要求面试者有MongoDB的使用经验,至于非关系数据库与关系型数据库之间的区别大家可以自行百度.但是作为程序员的我们,既然大部分 ...
- MongoDB(2):入门
MongoDB入门教程(包含安装.常用命令.相关概念.使用技巧.常见操作等) http://www.jb51.net/article/51514.htm 这篇文章主要介绍了MongoDB入门教程,包含 ...
- MongoDb 快速入门教程
文章首发于[博客园-陈树义],点击跳转到原文MongoDb 快速入门教程. MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的 ...
- MongoDB安装配置(Windows)
官网下载:https://www.mongodb.com/ 百度经验:https://jingyan.baidu.com/article/d5c4b52bef7268da560dc5f8.html 官 ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- MongoDB配置服务--MongoDB安装成为windows服务
MongoDB安装成为windows服务 1.打开命令提示符(最好以管理员的身份打开),然后输入: mongod --logpath "D:\MongoDB\data\log\logs.tx ...
- 课程上线 -“新手入门 : Windows Phone 8.1 开发”
经过近1个月的准备和录制,“新手入门 : Windows Phone 8.1 开发”系列课程已经在Microsoft 虚拟学院上线,链接地址为:http://www.microsoftvirtuala ...
- 将MongoDB设为Windows服务
转自“简时空”:<将MongoDB设为Windows服务> 1.前言 MongoDB 安装.配置完后,必须先启动它,然后才能使用它.通常有3中方式来启动数据库实例:① 通过命令行方式:② ...
- MongoDB(NoSQL) 入门
一.简介 NoSQL数据库因其可扩展性使其变得越来越流行,利用NoSQL数据库可以给你带来更多的好处, MongoDB是一个用C++编写的可度可扩展性的开源NoSQL数据库. 本文主要讲述MongoD ...
随机推荐
- nginx测试小结
最近在工作当中需要使用nginx,就对nginx进行进一步的了解,测试. 工作需求是在微服务架构的基础上,客户端通过nginx反向代理访问服务端,确保当一个服务端出现问题时能及时切换到正 ...
- UNITY 打包时提示sdk tools 或 sdk build tools版本低时可以直接点update 按钮进行更新
如题.如果不更新,而选择 : use newest version installed ,打包到结尾时可能会报错,莫名其妙的java错误 而且,SDK一旦被更新后,其所在目录的 SDK MANAGER ...
- Nginx隐藏标识以及其版本号
1.隐藏版本号 curl Nginx服务器时,有这么一行Server: nginx,说明我用的是 Nginx 服务器,但并没有具体的版本号.由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以 ...
- Connection reset by peer原理解析
“Connection reset by peer”代表什么?“Connection reset by peer”表示当前服务器接受到了通信对端发送的TCP RST信号,即通信对端已经关闭了连接,通过 ...
- 最适合入门的Laravel中级教程(一)
Laravel 是一个全栈框架: 我们使用 Laravel 开发业务常见有 3 个方向: 前端页面和后端逻辑混合的应用 主要是面向对 SEO 有需求的项目: 比如说新闻资讯博客文章等: 一般在控制器中 ...
- git本地推送远程
第一次将本地映射到已经存在的仓库 https://techoverflow.net/2017/08/09/how-to-solve-git-fatal-no-configured-push-desti ...
- selenium下打开Chrome报错解决
错误如下: [22516:20196:0704/024642.979:ERROR:install_util.cc(597)] Unable to read registry value HKLM\SO ...
- linux下redis4.0.2集群部署(利用原生命令)
一.部署架构如下 每台服务器准备2个节点,一主一从,主节点为另外两台其中一台的主,从节点为另外两台其中一台的从. 二.准备6个节点配置文件 在172.28.18.75上操作 cd /etc/redis ...
- 二十、Flyweight 享元模式
原理: 代码清单: BigChar public class BigChar { //字符名称 private char charname; //大型字符 # . \n 组成 private Stri ...
- Yii2增删改查
Controller <?php namespace frontend\controllers; use frontend\models\User; use yii\data\Paginatio ...