mongoose入门

简介

Mongoose是一个针对MongoDB的ODM框架(技术名词, 类似ORM的思想).

名称解释

Schema:    一种以文件形式存储的数据库模型骨架(定义数据结构及相关算法),不具备数据库的操作能力

Model:   由Schema发布生成的模型,可对集合(collectin)进行操作

Entity:    由Model创建的实体,他的操作也会影响数据库

Collection复数转换

指定的Collection名是Person, 经过查询实际存储的Collection名是People, Why??

1
2
3
4
5
6
7
8
9
10
11
12
13
// 创建Schema
var PersonSchema = mongoose.Schema({
name: String
});

// 创建Model
var PersonModel = db.model('Person', PersonSchema);

// 创建Entity
var personEntity = new PersonModel({name: 'zhangsan'});

// 保存Entity
personEntity.save();

注: 请将上面代码中的Person改为Anything, 对于初次接触MongoDB且没看参考资料2的工程师更容易理解, 因为MongoDB复数化Person时会将其变成people.

查看mongoose文档, 发现可以设置Collection的名称,如下

1
2
3
4
// 创建Schema
var PersonSchema = mongoose.Schema({
name: String
}, {collection: 'persons'});

看了参考资料2你将恍然大悟, 并且学会如何将获得的单词变为复数.

MongoDB存储数据流程

  1. 将Model的名称进行复数变幻(eg: Anything –> Anythings)
  2. 将复数化的名称转换为小写anythings
  3. 查找MongoDB中是否有名为anythings的Collection, 有的话将该数据插入, 无的话新建Collection再进行插入

参考资料

  1. Mongoose学习参考文档

  2. Mongoose在创建Model时对Collection的命名策略

  3. Mongoose官方文档

转载

本文出自<<arccode>>, 欢迎转载, 转载请注明出处.