MongoDB部分基础知识点笔记

MongoDB

1.数据库:Database
2.下载网址:https://www.mongodb.org/dl/win32/

我的安装路径:

配置环境变量:
C:\Program Files\MongoDB\Server\4.0\bin
在c盘根目录:
创建一个文件夹data
在data中创建一个文件夹db(默认数据库目录)
打开cmd:
输入mongod 启动mongodb服务器

修改路径方法:

mongod –dbpath 数据库路径 –port 端口号(<65536)

再重新打开一个cmd窗口:
输入mongo 出现>表示成功

数据库:
数据库服务器:保存数据
mongod启动服务器
数据库客户端:操作服务器,对数据进行增删改查
mongo 启动客户端

将MongoDB设置为系统服务,可以自动在后台启动,不需要每次都手动启动
在c盘根目录创建data:
在data中创建db和log文件夹
创建配置文件:在目录C:\Program Files\MongoDB\Server\4.0 下添加一个配置文件
mongod.cfg
以管理员身份打开命令行窗口
执行下面的命令:
“C:\Program Files\MongoDB\Server\4.4\bin\mongod.exe” --dbpath=“c:\data\db”
启动mongodb服务
若启动失败,在控制台sc delete MongoDB 删除之前配置的服务
重新配置
3.基本概念
数据库database
集合 collection
文档 document
在MongoDB中,数据库和集合会自动创建
4.基本指令
show dbs
show database
显示当前的所有数据库
use 数据库名
进入到指定的数据库中
db
db表示当前所处的数据库
show collections
显示数据库中所有的集合
5.数据库的CRUD操作
向数据库中插入文档:db.<collection名>.insert(doc)
向集合中插入一个文
例如:向test数据库中的,stus集合中插入一个新的学生对象
{name:”zf”,age:18,gender:”female”}
Db.stus.insert({name:”zf”,age:18,gender:”female”})
db. <collection名>.find()
查询当前集合中的所有文档
6.
(1)增加:
向数据库中插入文档
db..insert()
向集合中插入一个或多个文档
向集合中插入文档时,如果没有为文档指定_id属性,则数据库会自动为文档添加_id,该属性作为文档的唯一的标识。
可自己指定id,但不建议。
db.collection.insert One()
db.collection.insertMany()

(2)查询
db.collection.find()
-find()查询集合中所有符合条件的文档
-find()可以接收一个对象作为条件参数
{ } 表示查询集合中所有的文档
{属性:值} 查询属性是指定值的文档
-find()返回一个数组

db.collection.findOne()
-查询集合中符合条件的文档
-findOne()返回的是一个文档对象

db.collection.find({ }).count()
-查询所有结果的数量
(3)修改
db.collection.update(查询条件,新对象)
-update()默认情况下会使新对象替换旧对象
-若需修改原来的属性,而不是替换使用“修改操作符”来完成修改
$set 可修改文档中指定的属性
$unset 删除文档的指定属性
-update()默认只会修改一个
db.collection.updateMany()
-同时修改多个符合条件的文档
db.collection.updateOne()
-修改一个符合条件的文档
(4)删除
db.collection.remove()
-删除符合条件的所有文档(默认情况删除多个)
-如果remove()第二个参数传递一个true,则只会删除一个
-如果只传递一个空对象作为参数,则会删除集合中的所有文档
db.collection.deleteOne()
db.collection.deleteMany()
-remove()可根据条件删除文档,传递条件的方式和find()一样
db.collection.drop();
-删除集合
db.dropDatabase()
-删除数据库
7.
MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档则可以通过 .的形式匹配,此时属性名必须使用引号。
如:db.users.find({ ‘ hobby . movies ’ : ” hero ” })
8. $push 用于向数组中添加一个新的元素
$addToSet 向数组中添加一个新的元素,如果数组中已经存在了该元素,则不会添加
9. limit() 设置查询数据的上限
skip()用于跳过指定数量的数据
10.文档之间的关系
文档之间的关系
一对一(one to one)
- 在MongoDB,可以通过内嵌文档的形式来体现出一对一的关系

一对多(one to many)/多对一(many to one)
      - 也可以通过内嵌文档来映射一对多的关系

多对多(many to many)

11.查询文档时,默认按照_id的值进行排列
sort()指定排序规则
1:升序
-1:降序
limit、skip、sort 可以以任意的顺序调用
12. ename投影
1:显示
0:隐藏
13.
(1)下载安装Mongoose
npm i mongoose –save

(2)在项目引入mongoose
Var mongoose = require(“mongoose”);

(3)连接mongoose数据库
mongoose.connect('mongodb://数据库的ip地址:端口号/数据库名, {useNewUrlParser: true, useUnifiedTopology: true});
如果端口号是默认端口号(27017),则可以省略不写

(4)断开数据库连接(一般不需要)
Mongoose.disconnect()

监听MongoDB数据库的连接状态:connection属性:
数据库连接成功事件:
Mongoose.connection.once(“open”,function(){});
数据库断开的事件:
Mongoose.connection.once(“close”,function(){});
14.
通过Schema创建Model
Model表示数据库的集合,通过Model才能对数据库进行操作
const Blog = mongoose.model(‘Blog’, blogSchema);
modelName 是要映射的集合名,mongoose自动将集合名变为复数
15.
有Model才可以对数据库进行增删改查
Model.create(doc(s),[callback])
创建一个或多个文档并添加到数据库
参数:
doc(s) 一个文档对象或一个文档对象的数组
callback 操作完成以后调用的回调函数

查询:
Model.find(conditions, [projection], [options], [callback]) - 查询所有符合条件的文档 总会返回一个数组
Model.findById(id, [projection], [options], [callback])
- 根据文档的id属性查询文档
Model.findOne([conditions], [projection], [options], [callback])
- 查询符合条件的第一个文档 总和返回一个具体的文档对象

conditions 查询的条件
projection 投影 需要获取到的字段
	- 两种方式
	{name:1,_id:0}
	"name -_id"
options  查询选项(skip limit)
	{skip:3 , limit:1}
callback 回调函数,查询结果会通过回调函数返回
	回调函数必须传,如果不传回调函数,压根不会查询

通过find()查询的结果,返回的对象,就是Document,文档对象
Document对象是Model的实例

修改

Model.update(conditions, doc, [options], [callback])
Model.updateMany(conditions, doc, [options], [callback])
Model.updateOne(conditions, doc, [options], [callback])
- 用来修改一个或多个文档
- 参数:
conditions 查询条件
doc 修改后的对象
options 配置参数
callback 回调函数
Model.replaceOne(conditions, doc, [options], [callback])

   删除:

Model.remove(conditions, [callback])
Model.deleteOne(conditions, [callback])
Model.deleteMany(conditions, [callback])

  Model.count(conditions, [callback])
- 统计文档的数量的

Document 和 集合中的文档一一对应 , Document是Model的实例
通过Model查询到结果都是Document
document的方法
Model#save([options], [fn])
update(update,[options],[callback])
- 修改对象
remove([callback])
- 删除对象
get(name)
- 获取文档中的指定属性值
set(name , value)
- 设置文档的指定的属性值
id
- 获取文档的_id属性值
toJSON() ******
- 转换为一个JSON对象

toObject()
- 将Document对象转换为一个普通的JS对象

转换为普通的js对象以后,所有的Document对象的方法或属性不能使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值