mangodb使用(node.js)

1.安装下载

link Download MongoDB Community Server | MongoDB

macos安装教程http://t.csdnimg.cn/oYGMZ 

2.运行

brew services start mongodb-community@6.0

3.连接数据库

mongosh

连接成功

4.关闭命令

brew services stop mongodb-community@5.0

5.数据库命令

1.显示所有数据库(不显示因为数据库为空)

show dbs

2.切换到指定数据库 没有会创建

use 数据库名

3.显示当前所在数据库

db

4.删除当前数据库

use 库名

db.dropDatabase() 

6.集合命令

1.创建集合

db.createCollection('') 集合名

2.显示当前数据库中所有集合

show collections

3.删除某个集合 

db.集合名.drop()

4.重命名集合

db.集合名.renameCollection('newname') 

7.文档命令

1.插入文档

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

db.users.insert({name:"123",age:18})

2.查询文档

db.集合名.find(文档对象)

db.users.find({age:18})

3.更新文档

db.集合名.update(查询条件,新的文档)

db.users.update({name:"123"},{$set:{age:99}})

4.删除文档

db.集合名.remove(查询条件)

db.users.remove({name:"123"})

8.js操作数据库 Mongoose 5.0 中文文档

初始化package.json文件 安装mongoose

npm init

npm i mongoose

1.创建文档 


const mongoose=require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/bilb')
mongoose.connection.once('open',()=>{
  console.log('连接成功');
  //创建文档的结构对象
  //设置集合中文档的属性及属性类型
    let bookSchema= new mongoose.Schema({
      name:{
       type: String,
       required: true, //必须有
       unique: true //唯一 (必须重建集合才有效)不能插入相同name的数据
      },
      author:{
        type:String,
        default:"匿名" //默认值
      },
      style:{
        type:String,
        enum:['小说','文学','青春','励志','管理'] //枚举 设置值必须在这个范围
      },
      price:Number,
      is_hot:Boolean ,
      tags:Array,
      pub_time:Date, //日期
      test:mongoose.Schema.Types.Mixed,//任意类型
      doc_id:mongoose.Schema.Types.ObjectId //文档id(一般把另外一个文档的内容放进来)
    })
  //创建模型对象  对文档操作的封装对象(完成对文档的增删改查)
  //创建了一个名字为books的数据集 show collections mongoose会使用集合的复数命名
  let bookModel=mongoose.model('books',bookSchema);
  //新增
  bookModel.create({
    name:"4",
    author:"张三",
    style:"小说",
    price:123,
    is_hot:true,
    tags:['娱乐','电影'],
    pub_time:new Date(),
    test:'eere',
  }).then((err,doc)=>{
    if(err){
      console.log(err);
      return
    }
    console.log(doc);
    //关闭数据库连接 项目运行过程中不会添加
    //mongoose.disconnect();
  })

})
mongoose.connection.once('error',()=>{
  console.log('连接失败');
})
mongoose.connection.once('close',()=>{
  console.log('连接关闭');
})

2.删除文档

//删除单条
bookModel.deleteOne({
  _id:'65c1b10ca5f02763e5629186'
}).then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})
//批量删除
bookModel.deleteMany({
  is_hot:true
}).then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})

3.更新文档

//更新单条
bookModel.updateOne({name:'1'},{price:9.9}).then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})
//批量更新
bookModel.updateMany({author:'张三'},{price:99}).then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})

4.读取文档

//读取单条
bookModel.findOne({name:'1'}).then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})
//根据id获取文档数据
bookModel.findById('65c1cc2f06776a4df94dc1b2').then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})//批量读取
bookModel.find({author:'张三'}).then((err,data)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(data);
})

 5.条件查询

// <$lt >$gt >=$gte <=#lte !==$ne
// 或$or 与$and
 //价格小于20的图书 
bookModel.find({price:{$lt :20}}).then((err,data)=>{
})
//曹雪芹或余华的书
bookModel.find({$or:[{author:'曹雪芹'},{author:"余华"}]}).then((err,data)=>{
  
})
//价格大于30且小于70
bookModel.find({$and:[{price:{$gt:30}},{price:{$lt:70}}]}).then((err,data)=>{
  
})
bookModel.find({price:{$gt:30,$lt:70}}).then((err,data)=>{
  
})
//正则表达式 搜索书籍名称带有3的书
bookModel.find({name: /3/}).then((err,data)=>{
  
})
bookModel.find({name: new RegExp('3')}).then((err,data)=>{
  
})

6.截取数据

bookModel.find().select({name:1,author:1}).exec().then((err,docs)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(docs);
})
//数据排序 升序sort({name:1}) 倒序sort({name:-1})
bookModel.find().select({name:1,price:1,_id:0}).sort({name:1}).exec().then((err,docs)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(docs);
})
//截取数据(条数)limit(3) 1~3  skip(2).limit(3) 3~5
bookModel.find().select({name:1,price:1,_id:0}).sort({name:1}).skip(2).limit(3).exec().then((err,docs)=>{
  if(err){
    console.log(err);
    return
  }
  console.log(docs);
})

9.数据库可视化操作工具下载

Releases · Studio3T/robomongo · GitHub

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值