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

database

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基础操作

以上是 MongoDB基础操作 [数据库教程] 的全部内容, 来源链接: utcz.com/z/535233.html

回到顶部