Model方法

1. Models
上一篇笔记讲到了mongoose的基本用法,本次来讲一下oModel
中的一些方法怎么用。
其实,有了Model我们就可以对数据库进行增删改查的操作了。
对于Model的方法,我们可以通过查阅官方的API文档来获得最新和最全面的了解:
官方文档API
这里讲一些看文档需要注意的点。Model.xxx
风格的API表示Model构造函数的方法,可以用于创建对象。
Model#xxx
风格的API表示Model创建的对象调用的方法,也就是文档对象调用的方法,当然我发现官方现在好像是这样写了:Object.prototype.xxx()
。
这里讲几个常用的API,自己去官方文档取经吧:
Model.find()
Model.create()
Model.findOne()
实际上,关于find
的API就不少,实际使用还需自己根据情况来决定:
2. Document
2.1 添加
Document
是Model
的一个示例,通过Model
查询到的结果都是Document
。
我们其实可以直接创建一个Document
(文档对象)其实就是最开始我说的官方推荐的写法:
1 | const student = new StuModel({ |
将这个文档对象打印出来就是:
1 | { |
很容易发现,此时文档并没有被插入到数据库,仅仅是放到了内存中。
我们来讲他插入到数据库中(document#save()
):
1 | docs.save(); |
这里讲一下在我的Node.js项目中经常突然乍现的一个Bug:在运行项目后有时会突然报错
1 | ReferenceError: require is not defined |
查了一下是因为node
更新的原因,现在默认要求用import
语法,如果还是想要用require
就需要:
1 | import { createRequire } from 'module'; |
所以在保存文件时有两种方法:
1 | docs.save(); |
2.2 修改
修改docs也很简单,第一种方法当然是官方的API
方法。
但其实也可以通过.
分隔符来修改文档的属性:
1 | docs.name = "Syyyo900"; |
2.3 get和set
文档提供了一些很快捷的方法来直接得到文档的内容:
doc.get('age', String)
获取年龄并将数据转为字符串类型,第二个参数可选
文档还提供了set
方法,可以快速修改文档的内容,有多种写法,可以参考API文档。
2.4 其他
文档有一个doc.toJSON()
方法,可以将该文档转为JSON
对象。
用doc.toObject()
可以让文档变成一个普通的Object
对象,但是会让所有文档的方法失效。
所以,只有在特殊情况下才会使用,比如需要删除文档中的敏感数据,想要调用delete docs.address
来隐藏地址,就只能通过该方法来实现。
- 标题: Model方法
- 作者: Sy_
- 创建于 : 2025-06-15 00:51:35
- 更新于 : 2025-06-15 00:51:35
- 链接: https://shenying.online//demo/vqh5zjut/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。