MongoDb简单使用

news2024/12/23 23:31:15

介绍

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB服务端可运行在Linux、Windows平台,支持32位和64位应用,默认端口为27017。
推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

启动mongodb

点开mongodb的安装目录的bin文件目录

 

在此目录下打开cmd

 输入mongod

 再使用navicat进行连接

 

 

数据库命令 

show dbs 显示所有数据库 

 切换到指定的数据库 如果数据库不存在则会自动创建
use locals

 显示当前所在的数据库
db

 删除当前数据库
db.dropDatabase()

 集合命令

 创建集合
db.createCollection('strArr')

 显示当前数据库中的所有集合
show collections

 删除某个集合
db.intArr.drop()

 重命名集合
db.intArr.renameCollection('numberArr')

 文档命令

查询文档
db.集合名.find(查询条件对象)
__id是 mongodb 自动生成的唯一编号 用来唯一标识文档

 

 

 

 


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

 

 

更新文档
db.集合名.update(查询条件对象,新的对象)
上面这种方式会直接用新的对象代替原有的对象数据,如果只想更新指定属性请用下面的方式
db.集合名.update(查询条件,{$set:{key:value}})

 

 


删除文档
db.集合名.remove(查询条件对象)

 

 使用node.js连接mongodb

首先先在node中安装mongoose

npm i mongoose

 

//导入 mongoose
const mongo = require('mongoose')

//连接mongodb服务
mongo.connect('mongodb://127.0.0.1:27017/bilibili')

//设置回调
//设置成功的回调
mongo.connection.once('open', () => {
        console.log('连接成功');
    })
    //设置失败回调
mongo.connection.on('error', () => {
        console.log('连接失败');
    })
    //设置关闭回调
mongo.connection.on('close', () => {
    console.log('连接关闭');
})

支持的字段类型

  

插入文档

//导入 mongoose
const mongo = require('mongoose')

//连接mongodb服务
mongo.connect('mongodb://127.0.0.1:27017/bilibili')

//设置回调
//设置成功的回调
mongo.connection.once('open', () => {
        console.log('连接成功');
        //创建文档的结构对象
        //设置集合中文档的结构 属性以及属性值的类型 也就是指定这个文档要存的数据类型和结构
        let bookSchema = mongo.Schema({
            name: String,
            author: String,
            price: Number
        });
        //创建模型对象 对文档操作的封装对象
        /**
         * 参数说明
         * @books: 文档名
         * @bookSchema: 文档结构对象
         * 
         */
        let booKModel = mongo.model('books', bookSchema);

        console.log(booKModel);
        //新增
        booKModel.create({
            name: '三国演义',
            author: '罗贯中',
            price: 29
        })

    })
    //设置失败回调
mongo.connection.on('error', () => {
        console.log('连接失败');
    })
    //设置关闭回调
mongo.connection.on('close', () => {
    console.log('连接关闭');
})

 有两条是因为之前有过一次测试

删除文档

先在库里面存入一些测试数据

 单条删除

  //批量删除
        booKModel.deleteMany({
            name: '西游记'
        }).then((err, data) => {
            if (err) {
                console.log(err)
                return;
            }
            console.log(data);
        })

单个删除和批量删除结构一致,只是方法变为deleteOne 

更新文档

批量更新 

 //批量修改
        booKModel.updateMany({
            name: '西游记'
        }, { price: 999 }).then((err, data) => {
            if (err) {
                console.log(err)
                return;
            }
            console.log(data);
        })

单个更新和批量更新结构一致,只是方法变为updateOne

 查询文档

 //查询所有
        booKModel.find().then((err, data) => {
            if (err) {
                console.log(err)
                return;
            }
            console.log(data);
        })

 条件查询

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode50 快速幂

https://leetcode.cn/problems/powx-n/实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即, x n x^n xn )。 示例 1:输入:x 2.00000, n 10 输出:1024.00000 示例 2:输入:…

安全工程师必读 ——《安全技术工具扫盲》

安全技术 SAST - 静态应用安全测试(白盒检测)DAST - 动态应用安全测试(黑盒检测)IAST - 交互式应用安全测试(灰盒检测)RASP - 运行时应用自我保护Dependency Scanning(依赖项安全扫描&#xff…

袋鼠云产品功能更新报告05期|应有尽“优”,数栈一大波功能优化升级!

这段时间,我们对产品本身以及客户反馈的一些问题进行了持续的更新和优化,包括对离线平台数据同步功能的更新,数据资产平台血缘问题的优化等,力求满足不同行业用户的更多需求,为用户带来极致的产品使用体验。 以下为袋…

边缘计算节点是啥?边缘计算与CDN有什么关系?一文带你了解边缘计算节点BEC(2)

上文已经为大家详细介绍了边缘计算节点 BEC 与 CDN 之间的关系,对于 CDN 而言,边缘计算不仅仅只增加了存储、计算的功能,还有网络、安全等等一系列的基础能力。 如果大家感兴趣,欢迎阅读我们上一篇文章 边缘计算节点是啥&#x…

如何在pythonanywhere上部署Django项目?

PythonAnywhere是一个基于云的Python开发平台,它允许用户在云端运行、开发和部署,该平台提供了Python编程环境、Web框架、数据库和Web服务器等工具,让用户可以轻松地创建和部署Python应用程序。PythonAnywhere还提供了免费和付费的服务&#…

Java设计模式其一(概述、UML图、软件设计模式) | 穷其道者,归处亦同

文章目录 1. 设计模式概述1.1 软件设计模式的概念1.2 学习设计模式的必要性1.3 设计模式分类 2. UML图2.1 类图概述2.2 类图的作用2.3 类图的表示法2.3.1 类的表达方式2.3.2 类与类之间关系的表达方式 3. 软件设计原则3.1 开闭原则3.2 里氏替换原则3.3 依赖倒转原则3.4 接口隔离…

Java【多线程基础6】定时器的使用方式 + 模拟实现Timer

文章目录 前言一、定时器1, 什么是定时器2, 如何使用定时器 二、模拟实现定时器1, 初步实现2, 问题改善 总结 前言 📕各位读者好, 我是小陈, 这是我的个人主页 📗小陈还在持续努力学习编程, 努力通过博客输出所学知识 📘如果本篇对你有帮助, …

6.文本三剑客--sed、awk

文章目录 文本三剑客sed介绍命令介绍打印内容删除替换插入分组 文本三剑客 sed 介绍 sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来 编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么…

高阶python | 堆栈列表:RPN应用(模拟逆波兰式功能实现)

python版本:3.10 在列表中,append和pop方法有一个特殊的用途。可以在列表上使用这两个方法让列表变成一个堆栈使用。 这就是一个栈,它是先进后出,类似单门轿厢电梯一样的设计,出入口共用 堆栈最有用的应用之一就是做逆…

【社区团购】预制菜零售如何打造精准社群?

预制菜作为现代生活的新型“网红”食品,其受欢迎程度日益提高。而在商业竞争日益激烈的当下,如何让你的预制菜零售业务(文章编辑ycy6221)具有巨大的竞争优势呢?社区团购是一个不错的切入点,这不仅是为了扩大…

5月12号软件资讯更新合集.....

Vue 3.3 “浪客剑心” 发布 Vue 3.3 已正式发布&#xff0c;代号 "Rurouni Kenshin"&#xff08;浪客剑心&#xff09;。 公告写道&#xff0c;此版本专注于改进开发者使用体验 —— 特别是 SFC<script setup> 与 TypeScript 的结合使用。一同发布的还有 Vue…

【C语言】操作符详解(上)

操作符详解&#xff08;上&#xff09; 1.操作符分类2.算数操作符3.移位操作符3.1 右移3.2 左移 4.位操作符4.1位操作符发的应用 5.赋值操作符6.单目操作符7.关系操作符8.逻辑操作符 1.操作符分类 算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操…

Vue3-黑马(四)

目录&#xff1a; &#xff08;1&#xff09;vue3-基础-axios-获取数据 &#xff08;2&#xff09;vue3-基础-axios-发送数据 &#xff08;3&#xff09;vue3-基础-axios-baseURL &#xff08;1&#xff09;vue3-基础-axios-获取数据 第三方库axios是对xhr的封装&#xff0…

智安网络|网络安全威胁风险分析:识别以及预防黑客和钓鱼攻击

随着网络技术的不断发展和普及&#xff0c;网络安全问题日益严峻。黑客、病毒、恶意软件、钓鱼攻击等威胁不断涌现&#xff0c;给个人、企业、国家的信息安全带来了极大的威胁。如何识别、分析和预防网络安全威胁已成为所有人必须要解决的问题。本篇文章将从黑客攻击和钓鱼攻击…

proc文件系统

proc介绍 (1)proc是虚拟文件系统&#xff0c;虚拟的意思就是proc文件系统里的文件不对应硬盘上任何文件&#xff0c;我们用去查看proc目录下的文件大小都是零,是接受到请求才动态生成的&#xff1b; (2)proc文件系统是开放给上层了解内核运行状态的窗口&#xff0c;通过读取pro…

如何通过品牌矩阵号赋能品牌?

小红书作为年轻人的“消费决策”平台、逐步成为越来越多用户的消费指南&#xff0c;同时也变成众多品牌的营销基地。在小红书运营矩阵账号可以很好的树立品牌形象、增加粉丝粘性、节约广告成本&#xff0c;那么在搭建矩阵的过程中如何管理品牌矩阵号也成为众多品牌必须要思考的…

3.操作系统

文章目录 1.操作系统概述&#xff08;1&#xff09;当前操作系统的主要类型&#xff08;2&#xff09;操作系统的特点&#xff08;3&#xff09;五种主要的功能&#xff08;4&#xff09;考点分布 2.进程&#xff08;1&#xff09;进程的状态&#xff08;2&#xff09;进程的定…

jeecg低代码主从表打印

1.在在线开发菜单栏中选择online表单开发&#xff0c;新建两张表&#xff0c;分别为主表和附表。 2.首页进入报表设计——积木报表设计。 3.进入报表管理——打印设计&#xff0c;选择一个模板或者新建都可以。 4.进入设计页面&#xff0c;点击数据集管理右边的添加数据表&a…

高通开发系列 - 驱动模块Oops后如何找到出错位置

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题概述问题现象出错定位问题概述 加载驱动模块时发生:Kernel panic - not syncing: Fatal exception 那么如何找到驱动模块出错的…

抖音AI绘画变成真人软件

抖音AI绘画成人软件的发展可能包括以下几个方面&#xff1a; 算法优化&#xff1a;随着深度学习算法的不断发展&#xff0c;未来该技术可能会通过改进模型架构、优化训练方式等手段&#xff0c;提高生成图像的质量和自然度。 多样化的绘画风格&#xff1a;为了满足用户…