JUST CODE IT !|

Liwker

园龄:4年5个月粉丝:8关注:5

2022-03-14 18:34阅读: 33评论: 0推荐: 0

MongoDB基础

1. 介绍

1.1 什么是MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。是NoSQL。

1.2 什么是NoSQL

详细请看:https://www.runoob.com/mongodb/nosql.html

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

1.3 什么是Mongoose

一般我们不直接用MongoDB的函数来操作MongoDB数据库
Mongose就是一套操作MongoDB数据库的接口

2. 准备

MongoDB安装包括两部分,一个是将MongoDB的服务下载下来并且安装到自己电脑;一个是可视化界面

2.1 安装MongoDB

打开官网 https://www.mongodb.com/try/download/community
image.png
下载安装包后,即可打开安装,可以自己设置放置路径
注意:下图一定要取消安装,compass客户端可视化界面我会另外下载。你要是选中了,那就是安装了一天也完成不了
image.png
安装完后,在安装目录的 **data **下需要自己手动创建一个 **db **文件夹
image.pngimage.pngimage.pngimage.png

2.2 测试是否安装成功

进入C:\Program Files\MongoDB\Server\5.0\bin(默认的安装路径),双击mongo.exe,
image.png
用记事本打开mongod.cfg,可以看到,访问端口号是:27017。可以修改,不过修改后需要重启mongo.exe。
image.png
在浏览器访问:http://127.0.0.1:27017 ,出现下面网页,代表成功启动。
image.png
当然这样启动会很麻烦,而且还不好关闭。怎么做呢?
原来的版本需要自己配置,通过dos命令框来实现启动和关闭MongoDB。现在不需要配置,直接以管理员模式运行dos命令框,通过命令启动和关闭。
image.pngimage.pngimage.pngimage.pngimage.png

2.3 安装可视化工具

官网下载 RoBo 3T(Robomongo is now Robo 3T)
下载地址:https://robomongo.org/download
image.png
下载后安装即可image.png

打开,创建新连接
image.png
连接成功后,在左边的视窗上右键选项来创建数据库,和open shell来进行指令操作。
image.pngimage.pngimage.png

3. MongoDB 基础操作

详细请看:https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

3.1 插入文档

insert({数据})insertMany([{},{}])
都可以对集合增加文档,相当于给表增添记录
image.png
image.pngimage.pngimage.png

3.2 更新文档

update(query, data)
后面还可以跟两个Boolean值

  • upsert:如果不存在要更新的记录是否要插入,默认为 false
    true为插入,false为不插入
  • multi:如果有多条要更新的记录是否全部更新,默认为 false
    true为全部,false为第一个

image.png
其中,$set为修改器,不用则就会整个文档都替换掉,就是说原来Tom哪一项就没有name只有age了,加上,就只更新ageimage.png

3.3 删除文档

remove(query)
后面还可以加一个Boolean参数:justOne,为 true则只删一条,默认为 false,就是全部删除

3.4 查询文档

find(query)
第二个参数是配置显示字段,_id是默认有的
image.pngimage.png

3.4.1 AND 条件

db.col.find({key1:value1, key2:value2})
image.pngimage.png

3.4.2 OR 条件

db.col.find({ $or: [ {key1: value1}, {key2:value2} ] })
image.pngimage.png

3.4.3 条件操作符

in,nin, $and... 请看https://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&mid=2247484284&idx=1&sn=b528df57af8b9c09ae86ac752913b7b9&scene=21#wechat_redirect

操作 格式 范例 RDBMS中的类似语句
等于 {:} db.col.find({"by":"Tom"}) where by = 'Tom'
小于 {:{\(lt:<value>}} | db.col.find({"likes":{\)lt:50}}) where likes < 50
小于或等于 {:{\(lte:<value>}} | db.col.find({"likes":{\)lte:50}}) where likes <= 50
大于 {:{\(gt:<value>}} | db.col.find({"likes":{\)gt:50}}) where likes > 50
大于或等于 {:{\(gte:<value>}} | db.col.find({"likes":{\)gte:50}}) where likes >= 50
不等于 {:{\(ne:<value>}} | db.col.find({"likes":{\)ne:50}}) where likes != 50

image.pngimage.png

3.4.4 $type 操作符

详细请看:https://www.runoob.com/mongodb/mongodb-operators-type.html

db.test.find({ name: { $type: 'string' } })

3.4.5 limit()、skip()、sort()

limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
db.COLLECTION_NAME.find().limit(NUMBER)
image.png
我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
image.png
sort用来实现排序功能
1表示升序,-1表示降序
image.pngimage.pngimage.pngimage.png

4. Mongoose 基础操作

详情请看:参考手册

npm install mongoose

import mongoose from 'mongoose'

// 连接数据库
mongoose.connect('mongodb://localhost:27017/users',  { useUnifiedTopology: true, useNewUrlParser: true })

// Schema定义了集合中文档的结构
const usersSchema = new mongoose.Schema({
  username: String,
  password: String
})

// Model是从Schema编译来的构造函数。Model负责从MongoDB中创建和读取文档
// 调用mongoose.model()时,Mongoose就会编译一个Model
// 
const Users = mongoose.model('users', usersSchema)

// 查询
Users.find({}, {username: 1, _id: 0}, (err, user) => {
  if (err) {
    console.log(err)
    return
  }
  console.log(user)
})

本文作者:Liwker

本文链接:https://www.cnblogs.com/Liwker/p/16005409.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Liwker  阅读(33)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 灰色と青(翻自 米津玄師) kobasolo,春茶
  2. 2 スパークル nin
  3. 3 愛にできることはまだあるかい(翻自 RADWIMPS) 春茶
  4. 4 夏恋慕 kobasolo,春茶
  5. 5 花に亡霊 ヨルシカ
  6. 6 フラレガイガール(翻自 さユり) 春茶
  7. 7 ふたりごと(翻自 RADWIMPS) 茶泡饭,kobasolo,春茶
  8. 8 Lemon 米津玄師
  9. 9 君と100回目の恋(movie ver.) 葵海 starring miwa
  10. 10 風になる つじあやの
  11. 11 Letter Song ヲタみん
  12. 12 my sweetest one Aimer
  13. 13 Ref:rain Aimer
  14. 14 YELLOW(翻自 神山羊) 麦吉_Maggie
灰色と青(翻自 米津玄師) - kobasolo,春茶
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作曲 : 米津玄師

作词 : 米津玄師

袖丈が覚束ない夏の終わり

明け方の電車に揺られて思い出した

懐かしいあの風景

たくさんの遠回りを繰り返して

同じような街並みがただ通り過ぎた

窓に僕が写ってる

君は今もあの頃みたいにいるのだろうか

ひしゃげて曲がったあの自転車で走り回った

馬鹿ばかしい綱渡り 膝に滲んだ血

今はなんだかひどく虚しい

どれだけ背丈が変わろうとも

変わらない何かがありますように

くだらない面影に励まされ

今も歌う今も歌う今も歌う

···

忙しなく街を走るタクシーに

ぼんやりと背負われたままくしゃみをした

窓の外を眺める

心から震えたあの瞬間に

もう一度出会えたらいいと強く思う

忘れることはないんだ

君は今もあの頃みたいにいるのだろうか

靴を片方茂みに落として探し回った

何があろうと僕らはきっと上手くいくと

無邪気に笑えた 日々を憶えている

どれだけ無様に傷つこうとも

終わらない毎日に花束を

くだらない面影を追いかけて

今も歌う今も歌う今も歌う

朝日が昇る前の欠けた月を

君もどこかで見ているかな

何故か訳もないのに胸が痛くて

滲む顔 霞む色

今更悲しいと叫ぶには

あまりに全てが遅すぎたかな

もう一度初めから歩けるなら

すれ違うように君に会いたい

どれだけ背丈が変わろうとも

変わらない何かがありますように

くだらない面影に励まされ

今も歌う今も歌う今も歌う

朝日が昇る前の欠けた月を

君もどこかで見ているかな

何もないと笑える朝日がきて

始まりは青い色`