CNode

求教关于mongodb collection的名字

问答
Ddolare发布于10 年前最后回复8 年前14 回复8666 浏览0 收藏

今天用mongoose建了一个mongodb的collection 名字起得是Vedio var VedioSchema = new Schema({ _id: { type: String, unique: true, 'default': shortid.generate }, date: { type: Date, default: Date.now }, name: String, link:String, postDate:Date, image:String }); var Vedio = mongoose.model("Vedio",VedioSchema);

但是最终查看mongodb数据库 collection的名字却是vedios 这是为啥啊 向大家讨教了

查看回复

回复 (14)

I
i5ting#1·10 年前
mongoose.model(“Vedio”,VedioSchema);

是根据model的第一个参数,小写转的

nodejs里有一个模块叫inflected,专门做大小写,复数等转换的

D
dolare#2·10 年前
引用 i5ting是根据model的第一个参数,小写转的 nodejs里有一个模块叫inflected,专门做大小写,复数等转换的

@i5ting 多谢解答 不过我貌似没引入这个模块啊 他是自动转换了吗就

A
a1511870876#3·10 年前

“Vedio”自动转小写,加s,也就是会创建vedios的collection,记住一句话,mongoose的一切都是基于model,可以参考我的一篇帖子,https://cnodejs.org/topic/569f1ca5729116c06d5c9835

Y
ystyle#5·10 年前

我记得有个参数可以控制不加s的 自豪地采用 CNodeJS ionic

M
muzi131313#6·8 年前

mark

A
a1511870876#9·10 年前
引用 dolare@a1511870876 多谢

@dolare 兄弟,多看官方文档,你这个问题,在官方文档写的很清楚

L
libook#11·10 年前

Mongoose在创建Collection的时候会将你的model名字转换成英语复数形式来命名,但并不是末尾加s那么简单,我还真的有一段时间闲得蛋疼去看了看Mongoose的源代码, https://github.com/Automattic/mongoose/blob/master/lib/utils.js 如何将英文单词转换成复数,感觉挺有意思的。 你若想自定义Collection的名字可以看这个 http://mongoosejs.com/docs/guide.html#collection 都是官方文档里的东西,好好看看吧,争取以后能问个官方文档里找不到的问题。

J
jiangzhuo#12·10 年前

var 用户 = mongoose.model(“用户”,用户概要); 生成出来的collection竟然叫“用户们” 好神奇

S
SoaringTiger#13·10 年前

你再加第三个参数,就是你想要的collection名 var Vedio = mongoose.model(“Vedio”,VedioSchema,"Vedio"); 其实你想指定成任意的名字都行,例如 var Vedio = mongoose.model(“Vedio”,VedioSchema,"XyZ");

参与回复
登录后即可参与回复。登录