MongoDB

安装

  1. 数据存放路径:D:\data\db

  2. 安装目录:D:\MongoDB\mongodb-windows-x86_64-5.0.19\mongodb-win32-x86_64-windows-5.0.19\bin 配置环境变量
    在这里插入图片描述
    在这里插入图片描述

  3. 开启服务端,客户端
    在这里插入图片描述
    在这里插入图片描述

# 开启服务端,指定数据存放路径
mongod --dbpath D:\data\db# 开启客户端
mongo

命令

数据库命令

# 显示所有数据库
show dbs# 切换数据库,没有则自动创建
use testDatabase# 当前所在数据库
db# 删除数据库(切换到要删除的数据库)
use testDatabase
db.dropDatabase()

集合命令

# 创建集合
db.createCollection('users')# 显示所有集合
show collections# 删除集合
db.集合名.drop()# 集合重命名
db.集合名.renameCollection('新集合名')

文档命令

# 插入文档
db.集合名.insert(文档对象)# 查询文档
# _id是mongodb自动生成的唯一编号,用来唯一标识文档
db.集合名.find(查询条件)
db.集合名.find() # 显示所有文档# 更新文档
db.集合名.update(查询条件,新文档对象)
db.集合名.update({name:"ccc"},{$set:{age:999}})# 删除文档
db.集合名.remove(查询条件)

Mongoose

连接数据库

const mongoose = require("mongoose");mongoose.connect("mongodb://localhost/testDatabase");mongoose.connection.once("open", () => {console.log("连接成功");
});mongoose.connection.on("error", () => {console.log("连接失败");
});mongoose.connection.on("close", () => {console.log("连接关闭");
});// 关闭连接
mongoose.disconnect();

文档操作

文档对象的字段类型

在这里插入图片描述
字段校验

// 方式1 只有字段类型
// 创建文档的结构schema
const bookSchema1 = new mongoose.Schema({name: String,author: String,price: Number,tags: Arrary
});// 方式2 添加字段校验
const bookSchema1 = new mongoose.Schema({name: {type: String,required: true // 必填},author: {type: String,default: '匿名' // 默认值},price: {type: Number,unique: true   // 唯一值}, tags: {type: Arrary,enum: ['a','b'] // 枚举值}, 
});

文档对象的增删改查

const mongoose = require("mongoose");mongoose.connect("mongodb://localhost/testDatabase");mongoose.connection.once("open", () => {console.log("连接成功");// 1.创建文档的结构schemaconst bookSchema = new mongoose.Schema({name: {type: String,required: true,},author: {type: String,default: "匿名作者",},price: Number,});// 2.创建文档的模型对象,用于操作文档const bookModel = mongoose.model("booksCollection", bookSchema);// 3.使用文档的模型对象操作文档(增删改查)// 插入bookModel.create({name: "bookA",price: 88888888,}).then((res) => {console.log("单条插入", res);}).catch((err) => {console.log(err);});bookModel.insertMany([{name: "西游记",author: "a",price: 1,},{name: "红楼梦",author: "b",price: "2",},{name: "三国演义",author: "c",price: 3,},{name: "水浒传",author: "d",price: 4,},]).then((res) => {console.log("批量插入", res);}).catch((err) => {console.log(err);});// 删除bookModel.deleteOne({ name: "bookA" }).then((res) => {console.log("删除", res);});// 更新bookModel.updateOne({ name: "西游记" }, { price: 123456 }).then((res) => {console.log("更新", res);});// 查找bookModel.find().then((res) => {console.log("查找", res);});
});mongoose.connection.on("error", () => {console.log("连接失败");
});mongoose.connection.on("close", () => {console.log("连接关闭");
});// 关闭连接
// mongoose.disconnect();

条件查询

运算符:
在这里插入图片描述

逻辑运算符:
在这里插入图片描述

正则表达式:name中含有imissyou的对象
在这里插入图片描述

读取文档

// select 1需要的字段 0不要的字段
// sort   1升序 -1降序
// skip   跳过1条对象
// limit  前n条对象
bookModel.find().select({ _id: 0, name: 1, price: 1 }).sort({ price: -1 }).skip(1).limit(3).then((res) => {console.log("查找", res);});
const mongoose = require("mongoose");mongoose.connect("mongodb://localhost/testDatabase");mongoose.connection.once("open", () => {console.log("连接成功");// 1.创建文档的结构schemaconst bookSchema = new mongoose.Schema({name: {type: String,required: true,},author: {type: String,default: "匿名作者",},price: Number,});// 2.创建文档的模型对象,用于操作文档const bookModel = mongoose.model("booksCollection", bookSchema);// 3.使用文档的模型对象操作文档// 查找bookModel.find().select({ _id: 0, name: 1, price: 1 }).sort({ price: -1 }).skip(1).limit(3).then((res) => {console.log("查找", res);});
});mongoose.connection.on("error", () => {console.log("连接失败");
});mongoose.connection.on("close", () => {console.log("连接关闭");
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26915.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HCIA】11.ACL与NAT地址转换

ACL 通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的。 ACL是由permit或deny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相关字段实现对报文的分类。ACL是能够匹配一个IP数据包…

vue 通过多组复选框来过滤数据

1.通过if else 来筛选数据 <template> <div><div><label><input type"checkbox" v-model"checkedNames" value"北京"> 北京</label><label><input type"checkbox" v-model"chec…

【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)

本文大纲截图&#xff1a; UnitTest框架&#xff1a; PyTest框架&#xff1a; 框架&#xff1a; 框架英文单词 framework&#xff0c;为解决一类事情的功能的集合。需要按照框架的规定&#xff08;套路&#xff09;去书写代码。 一、UnitTest框架介绍【文末分享自动化测试学习…

【iOS】—— 编译链接

【iOS】—— 编译链接 文章目录 【iOS】—— 编译链接编译流程预处理&#xff08;预编译Prepressing&#xff09;编译&#xff08;Compilation&#xff09;汇编&#xff08;Assembly&#xff09;链接&#xff08;Linking&#xff09; 编译流程 编译流程分为四步 预处理&#…

Windows搭建Nginx实现RTMP转为HLS流

所需软件 nginx-1.7.11.3-Gryphon&#xff08;这个包含必须的RTMP模块&#xff0c;普通的Ngxin没有这个&#xff09;ffmpegVLC 配置Nginx 1为Nginx配置RTMP和HLS 这里定义了一个叫live的RTMP路径。同时设置其开启HLS功能&#xff0c;那么所有推送到这个地址的RTMP流都会自动生…

csapp 深入理解计算机系統 笔记

csapp 深入理解计算机系統 笔记 参考lab 第1章&#xff1a;计算机系统漫游第 2 章&#xff1a;信息的表示和处理Data Lab 第03章&#xff1a;程序的机器级表示Bomb Lab 参考 计算机速成课 | Crash Course 字幕组 (全40集 2018-5-1 精校完成)csapp重点解读深入理解计算机系統 c…

讯为RK3568开发板到手编译buildroot系统入坑一

从事单片机开发多年一直想买一个开发板学习Linux系统&#xff0c;这次狠心花了800多打样买了一个讯为的RK3568低配。裸板配置。 因为讯为没有编译系统的视频教程&#xff0c;只有文档的教程&#xff0c;而且只有瑞芯微官方带的Linux源码中的系统编译后文档教程。像ubuntu是没有…

安装hive数据仓库

部署hive数据库 环境准备 需要安装部署完成的Hadoop的环境如果不会搭建的可以参考&#xff1a; 安装mysql 卸载Centos7自带的mariadb rpm -qa|grep mariadbrpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodepsrpm -qa|grep mariadb mariadb-libs-5.5.64-1.el7.x86_64是使用…

蓝牙耳机选购攻略:开放式耳机篇!如何选购开放式耳机?开放式蓝牙耳机哪些品牌比较好?过来人告诉你如何选购开放式耳机!

作为一个耳机爱好者&#xff0c;最近更是喜欢上了开放式蓝牙耳机&#xff0c;实际用过的起码有十几款&#xff0c;但其实最终能留下来的也只有四五款。由于前期并不知道应该如何选择开放式耳机&#xff0c;经常都会高价买到些质量差、音质也不好、漏音大的开放式耳机&#xff0…

关键点检测SIFT算法笔记

SIFT算法 SIFT&#xff08;Scale Invariant Feature Transform&#xff09;&#xff0c;尺度不变特征变换。具有旋转不变性、尺度不变性、亮度变化保持不变性&#xff0c;是一种非常稳定的局部特征。在目标检测和特征提取方向占据着重要的地位。 SIFT算法所查找到的关键点是一些…

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍 1.大语言模型的预训练 1.LLM预训练的基本概念 预训练属于迁移学习的范畴。现有的神经网络在进行训练时&#xff0c;一般基于反向传播&#xff08;Back Propagation&…

解决Gson解析json字符串,Integer变为Double类型的问题

直接上代码记录下。我代码里没有Gson包&#xff0c;用的是nacos对Gson的封装&#xff0c;只是包不同&#xff0c;方法都一样 import com.alibaba.nacos.shaded.com.google.common.reflect.TypeToken; import com.alibaba.nacos.shaded.com.google.gson.*;import java.util.Map;…