MongDB之初识Mongoose入门

mongodb和mongoose的区别

  • MongoDb是一个基于分布式文件存储的文档类型数据库,MongDB是介于关系型数据库和非关系型数据库之间的产品

  • Mongoose是在node.js异步环境下对MongDB进行快速操作的对象模型工具,Mongoose是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的、增删改查等方法,简单说就是为了实现对mongdb的快速开发。

Mongoose介绍

  • Mongoose 是一种MongoDB对象建模工具,旨在在异步环境中工作。Mongoose 支持Node.jsDeno(alpha)

  • Mongoose可以基于schema结构定义数据模型,就是为了做到快速开发,开箱即用,可以使用Mongoose定义数据的表结构,表结构在Mongoose中叫schema,直接可以使用表结构创建数据模型,下面让我们感受一下吧。

安装Mongoose
npm 初始化项目(不知道npm怎么用的,需要自行查找资料)

npm i mongoose【安装mongoose】
引入模块,连接数据库
//引入模块
var mongoose = require('mongoose');
//连接数据库
//mongodb://127.0.0.1 数据库地址
// test 是数据库名
mongoose.connect('mongodb://127.0.0.1/test').then(res => {
	console.log("连接成功!");
})	
//如果用localhost连接不上,可以更换127.0.0.1
mongoose中的对象
Schema模型对象(用户约束文档的结构-类似表头)
Model模型对象(mongodb中的集合-类似表)
Document文档对象(mongodb中的文档-表中一行数据)
定义一个schema

Mongoose 的一切始于 Schema。每个 schema 都会映射到一个 MongoDB collection ,并定义这个collection里的文档的构成

var Schema = mongoose.Schema;

var blogSchema = new Schema({
    title: String,
    author:String,
    body: String,
    date: {type:Date, default: Date.now},
});
官方解释:
	document 里每个属性的类型都会被转换为 在 blogSchema 里定义对应的 SchemaType。 例如 title 属性会被转换为 SchemaType String, 而 date属性会被转换为 SchemaType Date。 还可以像上面 meta 属性,更详细地指定嵌套在里面的属性类型。
我们可以把Schema看成表的结构约束,可以把Model看成像表中插入数据的模型
创建一个model

我们可以把schema转换为一个Model,使用的函数mongoose.model(modelName,schema)

var Test = mongoose.model("test",blogSchema);
这里是为了让Schema和model产生一个映射
插入
Test.create({
    title: "《木兰花令拟古决绝词》",
    author:"纳兰容若",
    body: "人生若只如初见,何事秋风悲画扇。",
}).then((res) => {
    console.log(res);
    console.log("保存成功!");
})
验证
// 1
{
    "_id": ObjectId("64000d2d594f1f2dd95381a4"),
    "title": "《木兰花令拟古决绝词》",
    "author": "纳兰容若",
    "body": "人生若只如初见,何事秋风悲画扇。",
    "date": ISODate("2023-03-02T02:42:53.155Z"),
    "__v": NumberInt("0")
}
查询
Test.findById("64000d2d594f1f2dd95381a4").then(res => {
    console.log(res);
})
验证
{
  _id: new ObjectId("64000d2d594f1f2dd95381a4"),
  title: '《木兰花令拟古决绝词》',
  author: '纳兰容若',
  body: '人生若只如初见,何事秋风悲画扇。',
  date: 2023-03-02T02:42:53.155Z,
  __v: 0
}
删除
Test.deleteOne("64000d2d594f1f2dd95381a4").then(res => {
    console.log(res);
})
修改
Test.updateOne({_id:"64000d2d594f1f2dd95381a4"},{title: "111111"}).then(res => {
    console.log(res);
})

这也就不一一给大家验证了,最后把mongoose官方中文文档分享给大家。

http://www.mongoosejs.net/docs/validation.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值