Mongoose 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Mongoose 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Mongoose 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 JavaScript
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 罗奇奇
适用人群 未知
收录时间 2021-12-09

软件简介

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具,支持 promises 和 callbacks。

概述

连接到 MongoDB

首先需要定义一个连接。如果应用仅使用一个数据库,则使用mongoose.connect。如果需要创建其他连接,请使用mongoose.createConnection

connect 和 createConnection都使用 mongodb://URI,或者 host, database, port, options参数。

await mongoose.connect('mongodb://localhost/my_database');

连接后,open将在Connection实例上触发该事件。

注意: 如果本地连接失败,请尝试使用 127.0.0.1 而不是 localhost,更改本地主机名可能会出现问题。

Mongoose 会缓冲所有命令,直到它连接到数据库,这意味着不必等到它连接到 MongoDB 才开始定义模型、运行查询。

定义模型

模型是通过 Schema 接口定义的:

const Schema = mongoose.Schema;
const ObjectId = Schema.ObjectId;

const BlogPost = new Schema({
  author: ObjectId,
  title: String,
  body: String,
  date: Date
});

除了定义文档的结构和存储的数据类型之外,Schema 还处理以下定义:

以下是上述功能的一些用法:

const Comment = new Schema({
  name: { type: String, default: 'hahaha' },
  age: { type: Number, min: 18, index: true },
  bio: { type: String, match: /[a-z]/ },
  date: { type: Date, default: Date.now },
  buff: Buffer
});

// a setter
Comment.path('name').set(function (v) {
  return capitalize(v);
});

// middleware
Comment.pre('save', function (next) {
  notify(this.get('email'));
  next();
});

查看examples/schema/schema.js示例中的典型设置端到端示例。

访问模型

一旦我们通过 mongoose.model('ModelName', mySchema)定义了一个模型,就可以通过相同的函数访问它:

const MyModel = mongoose.model('ModelName');

或者一次性完成:

const MyModel = mongoose.model('ModelName', mySchema);

第一个参数是模型所针对的集合的单数名称。Mongoose 会自动查找模型名称的复数形式例如:

const MyModel = mongoose.model('Ticket', mySchema);

Mongoose 会为 tickets 集合建立模型,而不是 ticket 集合。

一旦我们有了模型,就可以实例化并保存它:

const instance = new MyModel();
instance.my.key = 'hello';
instance.save(function (err) {
  //
});

可以从同一个集合中找到文档

MyModel.find({}, function (err, docs) {
  // docs.forEach
});
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
发表了资讯
01/19 07:02

Mongoose 6.1.7 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具,支持 promises 和 callbacks。Mongoose 6.1.7 正式发布,本次更新内容如下: fix(model): 正确处理 $push 嵌套数组 #11108 fix(update): 正确地应用时间戳更新管道 #11151 fix(document): 将数组子文档设置为自身后,正确处理数组子文档的修改 #11172 fix(index.d.ts): 允许将选项传递给 model() 代替已移除的 skipInit #11137 fix(aggregate): 允许将详细信息传递给 Aggr...

1
2
发表了资讯
01/12 07:20

Mongoose 6.1.6 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具,支持 promises 和 callbacks。Mongoose 6.1.6 正式发布,本次更新内容如下: perf(document): 延迟创建文档事件发射器(document event emitter),用于提高内存使用率。通过一些小的优化,来改进大型数组的初始化文档 #10400 fix(model): 避免 versionKey: false 时的 bulkSave()错误 #11186 #11071 fix(model): 还原 #11079:findByIdAndUpdate(undefined) 的重大更改#...

0
3
发表了资讯
01/06 07:28

Mongoose 6.1.5 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具。Mongoose 支持 promises 和 callbacks。Mongoose 6.1.5 正式发布,本次更新内容如下: perf(index.d.ts):简化查询助手和方法的 Schema 类型定义,以大大减少 TS 编译器的开销 #10349 fix(document):允许将深度嵌套的模型填充为字符串 #11168 #11160 fix(query): 允许用字符串调用 limit() 和 skip() #11017 fix(cursor): 在加载带有查询光标的判别器文档时,正确应用选定...

0
0
发表了资讯
2021/12/28 07:17

Mongoose 6.1.4 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具,支持 promises 和 callbacks。Mongoose 6.1.4 正式发布,本次更新内容如下: fix(document): 处理subdoc下未定义嵌套文档的保存 #11110 fix(document):允许使用 create() 手动填充子文档引用 #10856 fix(populate): 处理子文档映射下的 refPath #9359 fix(update): 使用未定义的 id 调用 findByIdAndUpdate 时抛出错误 #11079 fix(mongoose):导出 ConnectionStates #1113...

0
2
发表于开发技能专区
2021/12/10 05:50

Mongoose 6.1.0 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具,支持 promises 和 callbacks。Mongoose 6.1.0 正式发布,本次更新内容如下: feat(populate): 支持子文档的引用 #10856 feat(document): 添加 ownerDocument() 方法到顶层文档,与子文档保持一致 #10884 fix: mongodb 驱动升级到 4.2.1 #11032 #10985 feat(schema): MongoDB 5 时间序列集合支持 timeseries 选项 #10611 feat(mongoose): 加入全局 strictPopulate 选项 #1...

0
0
发表了资讯
2021/10/24 07:59

Mongoose 6.0.12 发布,MongoDB 异步对象模型工具

Mongoose 6.0.12 正式发布,Mongoose 是设计用于异步环境的 MongoDB 对象模型工具,支持 promises 和 callbacks。 主要更新内容 fix (cursor):删除触发 closed 的逻辑,可以用 autoDestroy 功能来修复。(此功能仅支持 Node 12 及以上版本)。#10906 fix(map):支持将 flattenMaps: false 传递给 Map toJSON() ,toJSON() 在 TypeScript 中默认是 flatten 地图类型。 #10872 fix:升级 mongodb 驱动到 4.1.3 版本。 #10911 fix...

1
0
发表于数据库专区
2021/06/29 07:34

Mongoose 5.13.0 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具。Mongoose 支持 promises 和 callbacks。Mongoose 5.13 正式发布,本次更新内容如下: feat(query): 添加 sanitizeProjection 选项,以选择自动清理不受信任的查询预测; feat(model): 增加 bulkSave() 函数,在 1 次 bulkWrite() 中保存多个文档; feat(document): 允许在 toObject() 和 toJSON() 中传递一个 virtuals 或 pathsToSkip 的列表来应用; fix(model): 使 Mode...

0
3
发表于数据库专区
2021/05/20 07:15

Mongoose 5.12.10 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具。Mongoose 支持 promises 和 callbacks。Mongoose 5.12.10 正式发布,本次更新内容如下: 修复(查询):允许在查询选项的结果文档中设置 defaults 选项; 修复(populate):处理用自定义 tiedValue 来填充嵌入式判别器; 修复(文档):允许向 validate() 和 validateSync() 传递以空格分隔的 pathsToValidate 字符串; 修复(模型+模式):支持在将 collection 作为静态...

0
4
发表了资讯
2021/05/12 07:04

Mongoose 5.12.8 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具。Mongoose 支持 promises 和 callbacks。Mongoose 5.12.8 正式发布,本次更新内容如下: fix(populate): 处理填充不可变数组的路径; fix(CastError): 添加 toJSON() 函数以确保 name 属性始终最终出现在 JSON.stringify() 输出中; fix(query): 增加 allowDiskUse() 方法,改进 MongoDB 4.4 新的 allowDiskUse 选项的设置; fix(populate): 允许在一些文档具有非对象属性的...

1
1
2021/04/21 07:31

Mongoose 5.12.5 发布,MongoDB 异步对象模型工具

Mongoose 是设计用于异步环境的 MongoDB 对象模型工具。Mongoose 支持 promises 和 callbacks。Mongoose 5.12.5 正式发布,本次更新内容如下: fix(populate): 当数据库中文档数组属性不存在时,处理文档数组下方的填充; fix(populate): 清除指向已填充文档的悬空指针,这样用 populate() 查询光标就可以垃圾回收已填充的子文档; fix(connection): 在调用 connect() 之前创建新模型时,从 Mongoose 全局中正确拉取 autoCreate...

0
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/05/18 21:40

mongoose

1、mongoose 非关系性数据库,不存在表的概念,使用的是集合 mogod 命令用于启动数据库,默认监听27017端口,必须开启才能 使用mongoose 2、root 3t mongoose的一些概念 Schema(范式),用于描述数据表的 Model(模型),执行处理行为,系统自动封装 Collection(集合),数据集合的实例 3、基本使用: 运行mongod开启数据库服务, 打开root3T连接数据库 项目根目录npm i mongoose 项目根目录建立dbs文件夹,项目结构如下: co...

0
0
发表于服务端专区
2015/05/09 22:03

mongoose

mongoose 的query: Person .find({ occupation: /host/ }) .where('name.last').equals('Ghost') .where('age').gt(17).lt(66) .where('likes').in(['vaporizing', 'talking']) .limit(10) .sort('-occupation') .select('name occupation') .exec(callback);...

0
0
发表了博客
2019/12/25 18:02

mongoose

Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具 get提交的数据后端接口用req.query接收 post提交数据后端接口用req.body接收 增删改查 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test',(err)=>{if(!err){console.log("链接成功")}}); //下面的代码是给出了在数据库里存储数据的模型格式 const Cat = mongoose.model('Cat', { name: String },'Cat');//第三个参数和第一...

0
0
发表了博客
2013/11/29 11:40

mongoose 之Shema

总 之见到我写点啥简直是奇迹,由于现在喜欢上玩转node.js +mongoose,个人爱好,靠近前端的又是英文文档,苦逼得很,悟出来一个写一个吧。之前喜欢误打误撞,网上搜索一点解决一下问题,后来实在难看得很,为啥,解决一个小问题又来大问题,刚解决完大问题,有来巨大的bug,所有必需系统的学习,就算爱折腾也得有点头绪,决定先认真看完文档再说吧,免得想开发点啥都折腾得没有兴趣了……。 首先我们得知道Schema常用的有哪些数...

0
2
发表于大前端专区
2015/12/01 00:53

mongoose文档

详见:http://mongoosejs.com/docs/guide.html Schema 》Model 》Instance 安装 node install mongoose --save 简单的例子: var mongoose = require('mongoose'); var Schema = mongoose.Schema; //mongoose.connect('mongodb://localhost/test'); mongoose.connect('localhost', 'test'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.on('open', function (callba...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
1 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部