1369460
今天看到一篇文章 根据网上别人的分享和mongoose文档...... (这文章引用了不少Mongoose学习参考文档——基础篇 ,然而引用的原文里错误连篇,具体的错误已经列在评论区中,需要谨慎判断)
联想到了到了一个问题,首先看下面的代码
var PersonModel = mongoose.model('Person',PersonSchema)
如果数据库中不存在名为Person的collection,那么执行插入操作后就会创建一个。
然而运行一下会发现,在插入一条记录后,数据库中创建了一个名叫People的collection,很简单,是Person的复数形式。
但开发者肯定不希望建一个名叫people的collection,难道还得费劲去记名词的复数形式吗?
稍微翻一下文档就能发现model方法的构造函数
看到了,第三个参数才是数据库中collection的名字,第一个参数只是model的名字,想一下也能明白,collection不是存了很多model吗,那就取复数呗
但这肯定不是我们想要的,因此还是老老实实地写上第三个参数。
下面是我写的另一个例子:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/cnodeTest');
var db = mongoose.connection;
db.once('open', function (callback) {
console.log("connected");
var loginSchema = new mongoose.Schema({
username:String,
password:String
});
var loginTest = db.model("login",loginSchema);
var query = new loginTest({username:"lear",password:"lear"})
query.save().then(function(doc){
console.log(doc);
})
});
运行一下就能发现数据库里多了一个名叫logins的collection
参考了这篇19w阅读量的文章(@nnliang认为这不是个问题,确实这篇文章没提到本文中的问题,这里做个补充) Mongoose学习参考文档——基础篇
这个错误不止存在一篇文章里 使用mongoose过程中遇到的疑惑(已经解决)