MongoDB基础笔记

概述

  • 基于json,输入js语句
  • 对比mysql
    • databasedatabase
    • tablecollection
    • 文档
    • 字段字段

安装

  • 下载,安装
  • 配置环境变量path,把安装好的mongodb目录下的bin目录路径放入
  • cmd输入mongod启动服务器
  • 另一个cmd输入mongod --dbpath C:\...路径.. --port 10086 改变默认创建数据库路径,改变端口号<65535
    • 默认bin下的data
  • 另一个cmd输入mongo连接mongodb
    • 出现>表示连接成功
  • mongodb变成系统服务,开机自启
    • 百度
    • 大概步骤,1.创建配置文件mongod.cfg,写入配置信息,2.放到bin同级目录下,3.管理员打开cmd执行命令

新版本直接自启了,不用配置


安装图形界面

类似mysqlworkbench

  • 百度下载mongodbmanagerfree_inst.exe

可以百度破解的navicat,对大部分数据库都有图形管理系统
还有其他的
—## 基础命令

  • show databases/dbs 显示所有数据库
  • use 数据库 进入数据库
    • 如果不存在,会自动创建
  • db当前数据库
  • show collections 查看所有集合

自动添加_id字段,也可自己指定
— ## 增删改查
— \n### 增加
接下来笔记db.<collection>省略

  • db.<collection>.insert({})添加文档
    • .insert([{},{},{}])添加多个文档
  • .insertOne({})插入一个
  • .insertMany([{},{}])插入多个

  • db.<collection>.find()查所有文档
    • .find({name:"...",age:""})查询指定文档,{}内为且关系
    • .find({$or:[{name:"...",age:""},{name:"..."}]})查询指定文档,[]内为或关系
    • .findOne({})查询符合条件的第一个文档
    • .find({}).count()查询满足条件的数量
      • .length也行

  • db.<collection>.update({},{})修改指定文档,前面{}是条件
    • 默认会把后面{}将指定文档覆盖;默认只修改一个
    • .update({},{$set:{name:""}})修改指定文档指定字段
    • .update({},{},{multi:true})修改所有指定文档
    • .updateOne({},{})修改满足条件的第一个文档
    • .updateMany({},{$set:{}})修改多个满足条件的文档的指定字段;$set也适用于其他

  • db.<collection>.remove({},{})删除指定文档,前面{}是条件
    • 类似find
    • 默认删除多个
    • .remove({},true)删除一个
    • .remove({},{$unset:{name:""}},true)删除第一个指定文档指定字段
  • .deleteOne({}) = .remove({},true)
  • .deleteMany() = .remove()

删除集合

  • db.<collection>.drop()

其他

  • .find().skip(10).limit(10)跳过10条查看前十条(也就是看到第11-20条)
  • .find().sort(字段:1)按字段升序;默认以_id
  • .find().sort(字段:-1)按字段降序;默认以_id
  • .find({},{name:1})只显示符合的文档的name字段和_id字段
  • .find({},{name:1,_id:0})只显示符合的文档的name字段

修饰符

类似$set,看文档


nodejs操作mongodb

  • 安装mongoose

    • 本质就是对nodejs原生的mongoDB的封装
  • 引入

  • 连接mongodb数据库mongoose.connect("mongodb://127.0.0.1:27017/test")

  • 监听连接状态mongoose.connection.once('open',()=>{})

  • 监听连接状态mongoose.connection.once('close',()=>{})

  • 断开连接mongoose.disconnect()

  • 创建一个schema(模式)对象new mongoose.schema({})

  • 创建model(数据库中的集合)mongoose.model('需要映射的集合名',schema模式对象)

    • 需要映射的集合名会自动变成复数
  • Model的方法

    • 文档
    • 他的方法最后多一个回调(err,document)=>{}document就是Model的实例对象
    • .create = .insert
    • .find = .find
  • 创建文档对象

    • const doc = new UserModel({})
    • doc进行操作,操作方法见文档
    • 操作完成后doc.save()保存修改即保存到数据库了
const mongoose = require('mongoose')
//连接
mongoose.connect("mongodb://127.0.0.1:27017/test")

//创建schema模式对象
const schema = mongoose.Schema
const userSchema = new schema({
	username: String,
	age: Number,
	password: {
		type: String,
		default: '22222'
	}
})

//创建Model
const userModel = mongoose.model('user', userSchema)
//添加文档,添加后才创建集合
userModel.create({
	username:'xz',
	age:90,
	password:'7347283742'
	},
	(err) => {
		if (err) console.log(err.message)
	})

//监听连接状态
mongoose.connection.once('open', () => {
	console.log('数据库连接成功');
})
mongoose.connection.once('close', () => {
	console.log('数据库断开成功');
})

前面连接数据库的代码和创建Model的代码可以分别搞两个模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值