我有以下代码使用Mongoose在Mongo中插入记录。
var mongoose = require('mongoose');
var config = require ('config');
var db = mongoose.createConnection(config.database.address, config.database.dbName);
var strCollectionName = 'category';
var CategorySchema = new mongoose.Schema({
categoryName : {type: String, required: true , unique: true },
categoryTag : {type: String},
categoryDescription : {type: String},
createDate : {type: Date, default: Date.now}
});
var createCategory = function (objCategory)
{
var Category = db.model(strCollectionName, CategorySchema );
var objSchema = new Category(objCategory);
objSchema.save(function (err)
{
if (err)
console.log ("Error");
else
console.log ("Success !!");
});
}
我设法让它发挥作用。但是如果我尝试在save中发出db.close()命令,则抛出错误,否则它是好的。我的问题是我不应该完全关闭连接? Mongoose会自动照顾吗? - 我担心如果连接池超出限制,则整个数据库可能会崩溃。
答案 0 :(得分:1)
要做到这一点:
定义你的模型并同时告诉Mongoose。您可以在创建连接之前执行此操作。
当您想要使用它时,您之前正在告诉Mongoose您的架构 - 当您自己创建架构时,您只需要执行一次。
然后,您可以打开Mongoose的连接,该连接可以在整个应用程序中使用(即随后使用它,您只需要require('mongoose')
):
var mongoose = require('mongoose');
var config = require ('config');
var CategorySchema = new mongoose.Schema({
categoryName : {type: String, required: true , unique: true },
categoryTag : {type: String},
categoryDescription : {type: String},
createDate : {type: Date, default: Date.now}
});
mongoose.model('Category', CategorySchema);
mongoose.connect(config.database.address, config.database.dbName);
如果您想手动创建和管理连接,可以使用.createConnection,如上例所示,但除非您知道自己在做什么,否则最好只使用Mongoose的默认连接。
创建类别:
// if you're in a different file to where you created your CategorySchema, var these:
var mongoose = require('mongoose'),
Category = mongoose.model("Category");
var createCategory = function (objCategory) {
var newCategory = new Category(objCategory);
newCategory.save(function (err) {
if (err)
console.log ("Error");
else
console.log ("Success !!");
});
}