MongoDB基础操作

MongoDB基础操作
MongoDB增删改查操作 MongoDB数据库服务启动和关闭 net start mongodb net stop mongodb 数据库连接 先使用np…

	MongoDB基础操作[数据库教程]

MongoDB增删改查操作

MongoDB数据库服务启动和关闭

net start mongodb
net stop mongodb

数据库连接

先使用npm install mongoose安装mongoose依赖,之后使用mongoose提供的connect方法即可连接数据库。

const mongoose = require("mongoose");

mongoose
  .connect("mongodb://localhost/test")
  .then(() => console.log("数据库连接成功"))
  .catch(err => {
    console.log("数据库连接失败");
  });

ps:创建的数据库名字如果不存在,MongoDB会自动创建

创建集合

分为两步,

  1. 对集合设定规则
  2. 创建集合,创建mongoose.Schema构造函数的实例即可创建集合
//设定集合规则
const personSchema = new mongoose.Schema({
  name: String,
  age: Number,
});
创建集合并应用规则
const Person = mongoose.model("Person", personSchema); //数据库实际名称为persons

ps:刚创建好的集合在MongoDB Compass里面无法看到,是因为里面没有插入数据

创建文档

创建文档实际上就是向集合中插入数据

分为两步,

  1. 创建集合实例
  2. 调用实例对象下的save方法将数据保存到数据库中

方法一:

//创建文档
const person = new Person({
  name: "张三",
  age: 20,
});
//将文档插入到数据库中
person.save();

方法二:

Person.create({ name: "李四", age: 19 }, (err, doc) => {
  //错误对象
  console.log(err);
  //当前插入的文档
  console.log(doc);
});
Person.create({ name: "王五", age: 18 })
  .then((doc) => console.log(doc))
  .catch((err) => console.log(err));

mongoDB数据库导入数据

mongoimport -d 数据库名称 -c 集合名称 -file 要导入的数据文件

:mongoimport在使用之前需要先找到MongoDB安装目录bin目录下的mongoimport.exe所在的文件目录位置,将其添加到环境变量中即可使用

查询文档

//根据条件查找文档(条件为空则查找所有文档)
Person.find({ name: "张三" }).then((result) => console.log(result));
//返回文档集合
[{ 
	_id: 5f7a72120398013a3c338112, 
	name: ‘张三‘, 
	age: 20, 
	__v: 0 
}]
//根据条件查找文档
Person.findOne({ name: "李四" }).then((result) => console.log(result));
//返回文档集合
{ 
	_id: 5f7a75a84187ba391091e3dc, 
	name: ‘李四‘, 
	age: 19, 
	__v: 0 
}

两者的区别是,不管结果如何,find返回的都是一组文档,而findOne返回的都是一个文档

特殊的查询

//匹配大于 小于
Person.find({age: {$gt: 18, $lt: 20}}).then(result=>console.log(result))
//匹配包含,可以查询到文档数组里包含的信息
Person.find({hobbies: {$in: [‘打篮球‘]}}).then(result=>console.log(result))
//选择要查询的字段
Person.find().select(‘name age -_id‘).then(result=>console.log(result))
//不想查询的字段在前面加个‘-‘则不显示
//将数据按照年龄进行升序排序
Person.find().sort(‘age‘).then(result=>console.log(result))
//将数据按照年龄进行降序排序
Person.find().sort(‘-age‘).then(result=>console.log(result))
//skip跳过多少条数据,limit限制查询数量
Person.find().skip(2).limit(2).then(result=>console.log(result))

删除文档

//查询到一条文档并且删除
//返回删除的文档
//如果查询条件匹配了多个文档,那么将会删除第一个文档
Person.findOneAndDelete({}).then(result=>console.log(result))
//删除多个
//返回删除的文档数目以及ok字段
Person.deleteMany({}).then(result=>console.log(result))

更新文档

//更新集合中的文档(更新一个)
Person.updateOne({查询条件},{要修改的值}).then(result=>console.log(result))
//例
Person.updateOne({name: ‘张三‘},{name: ‘张三丰‘}).then(result=>console.log(result))
//更新集合中的文档(更新多个)
//若查询条件为空,则更新所有值
Person.updateMany({查询条件},{要修改的值}).then(result=>console.log(result))
//例
Person.updateMany({},{age: 18}).then(result=>console.log(result))

MongoDB基础操作

原文地址:https://www.cnblogs.com/actorhuang/p/13769424.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6674.html

(0)
上一篇 2023-04-05
下一篇 2023-04-05

相关推荐

  • MYSQL触发器的使用[通俗易懂]

    MYSQL触发器的使用[通俗易懂]概念:触发器是一种特殊的储存过程,在满足定义条件操作时触发,并且自动执行触发器中预先设定好的定义的语句集合 触发器是特殊的储存过程 触发器是在对表操作时,满足条件就可以自动调用预先编译的sql语句 安

    2023-01-31
    103
  • Python List 操作指南:快速掌握列表的增删改查

    Python List 操作指南:快速掌握列表的增删改查Python是一门非常强大的编程语言,其中列表(list)是其中尤为重要的数据结构之一。这篇文章将详细介绍Python列表的各个操作,包括增删改查操作。在本文结束时,你将对Python列表的各种操作了如指掌。

    2024-02-21
    76
  • ShardingSphere-JDBC入门实战「终于解决」

    ShardingSphere-JDBC入门实战「终于解决」前言 Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使…

    2023-04-14
    97
  • 中国银行KONDOR系统_TIDB在win10安装

    中国银行KONDOR系统_TIDB在win10安装作者介绍:韩宇,中国银行信息科技运营中心工程师。 本文的内容可能和之前的金融企业将 TiDB 应用在业务上的实践不同,下面主要介绍我们如何把 TiDB 应用在金融行业的后台运维监控上。Zabbix …

    2023-03-17
    99
  • python简易计算器程序(Python 计算器)

    python简易计算器程序(Python 计算器)1、打开idle。点击file,然后点击new file.这是创建一个新的文件。

    2023-10-29
    63
  • sqlserver无法启动调试器为远程调试配置防火墙_未能启动调试适配器

    sqlserver无法启动调试器为远程调试配置防火墙_未能启动调试适配器因为报错被我解决了,所以没有截图,那我就打字吧 无法启动调试的具体报错: 弹出来的第一个框: 无法启动调试 其他信息: 数据为空。不能对空值调用此方法或属性。(System.Data) 弹出来的第二个

    2023-03-12
    105
  • oracle锁表和解锁_数据库锁表会自动解锁吗

    oracle锁表和解锁_数据库锁表会自动解锁吗–ORACLE表被锁原因:具体操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态, –可能是该表被某一用户锁定,导致其他用户无法继续操作 –查询被锁

    2023-03-01
    103
  • python之包(Python 常用包)

    python之包(Python 常用包)   Python之所以受欢迎不光是因为它简单易学,更重要的是它有成千上万的宝藏库。这些库相当于是已经集成好的工具,只要安装就能在Python里使用。它们可以处理各式各样的问题,无需你再造轮子,而且随着社区的不断更新维护,有些库越来越强大,几乎能媲美企业级应用。那么这些工具库怎么下载安装呢?它们被放在一个统一的“仓库”里,名叫PyPi(Python Package Index),所有的库安装都是从这里调度。有了仓库之后,还需要有管理员,pip就是这样一个角色。

    2023-10-29
    68

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注