美文网首页
nodeJs连接数据库MongoDB

nodeJs连接数据库MongoDB

作者: 五四青年_4e7d | 来源:发表于2019-12-29 23:59 被阅读0次

连接启动数据库:

 net start mongodb

下载node_modules依赖包(必备):

cnpm i

下载第三方依赖包(连接数据库必备):

 cnpm install mongoose

连接数据库代码细则:

// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
  .connect("mongodb://localhost/playground", {
    useUnifiedTopology: true,
    useNewUrlParser: true
  })
  .then(() => console.log("数据库连接成功"))
  .catch(err => console.log("数据库连接失败", err));

启动项目:


QQ图片20191229125544.png

创建集合(为集合设定规则):

  //创建集合规则:
  const courseSchema = new mongoose.Schema({
   name:String,
   author:String,
   isPublished:Boolean
  })

  //使用规则创建集合:
  const Course =  mongoose.model('Course',courseSchema)

  //插入数据:
  const  course = new Course({
    name:"李慷",
    author:"js基础",
    isPublished:true
  })

  //保存数据save:
  course.save()

插入成功数据库预览:


image.png

异步函数方式插入集合:

// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
    .connect("mongodb://localhost/playground", {
        useUnifiedTopology: true,
        useNewUrlParser: true
    })
    .then(() => console.log("数据库连接成功"))
    .catch(err => console.log("数据库连接失败", err));
//创建集合规则:
const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
})
//使用规则创建集合:
const Course = mongoose.model('Course', courseSchema)
//使用第二种方式创建集合
Course.create({
    name: "李慷账户2",
    author: "js基础1",
    isPublished: false
},(err,result)=>{
console.log(err)
console.log(result)
})

把json文件导入数据库:
1.首先配置全局的变量:
C:\Program Files\MongoDB\Server\4.1\bin (找到安装路径)
2.我的电脑属性中:
我的电脑->高级系统设置->环境变量->系统变量->把以上路径复制确认
3.执行链接命令:

 mongoimport  -d playground -c users --file ./uer.json

注意只有执行完前两部才能有效执行mongoimport (命令) playground (当前数据库) users(集合名称) uer.json(当前同路径下的json文件)
4.执行成功截图:


image.png image.png

两种文档数据查询条件find和findeone

// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
    .connect("mongodb://localhost/playground", {
        useUnifiedTopology: true,
        useNewUrlParser: true
    })
    .then(() => console.log("数据库连接成功"))
    .catch(err => console.log("数据库连接失败", err));
//创建集合规则:
const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
})
//使用规则创建集合:
const Course = mongoose.model('Course', courseSchema)
//使用第二种方式创建集合
Course.create({
    name: "李慷账户2",
    author: "js基础1",
    isPublished: false
},(err,result)=>{

})

//按照id条件查询:
// Course.find({_id :'5e083ea94d5de34f241235b5'}).then(result => console.log(result))

//返回的是一个对象
Course.findOne({name:'李慷账户2'}).then(result => console.log(result))

多种条件查询(匹配大于小于):

//根据当前的字段大于小于之间查询
Course.find({age:{$gt:20,$lt:40}}).then(result => console.log(result))

多种条件查询(匹配包含):

//匹配包含字段值:
Course.find({ hobbies: { $in: ['足球'] } }).then(result => console.log(result))

字段查询(-查询):

// 选择要查询的字段:
// -_id表示不需要查询这个字段
Course.find().select('name email -_id').then(result => console.log(result))

升序降序查询:

//数据查询-降序,升序,排序
Course.find().sort('age').then(result => console.log(result))
Course.find().sort('-age').then(result => console.log(result))

分页查询:

//分页查询
Course.find().skip(2).limit(3).then(result => console.log(result))

根据条件(字段)删除接口:

// 删除接口:
Course.findOneAndDelete({name: '李慷账户'}).then(result =>  console.log(result))

根据id删除接口:

// 根据id删除接口:
Course.findOneAndDelete({_id: '5e08c175ba41c25a5cd79b61'}).then(result =>  console.log(result))

删除数据库所有数据(慎重操作):

//删除所有的数据:
Course.deleteMany({}).then(result => console.log(result))

修改(更新一个)接口:

//修改(更新操作):
Course.updateOne({name:"李慷账户admin"},{name:"李慷test"}).then(result => console.log(result))

修改(多个参数)接口:

//多个修改操作:
Course.updateMany({},{name:"李慷"}).then(result => console.log(result))

mongoose的验证规则(required minlength maxlength trim):

// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
  .connect("mongodb://localhost/playground", {
      useUnifiedTopology: true,
      useNewUrlParser: true
  })
  .then(() => console.log("数据库连接成功"))
  .catch(err => console.log("数据库连接失败", err));
//创建集合规则:
const postSchema = new mongoose.Schema({
 title:{
     type:String,
     //必选字段:
     required:[true,"请传入文章标题"],
     //字符串的最大最小长度:
     minlength:[2,"文章长度不能小于2"],
     maxlength:[16,"文章长度不能大于16"],
     //去除空格:
     trim:true
 }
})
const Post = mongoose.model('Post',postSchema)
Post.create({title:'文章标题'}).then(result => console.log(result))

相关文章

网友评论

      本文标题:nodeJs连接数据库MongoDB

      本文链接:https://www.haomeiwen.com/subject/fnjyoctx.html