0

我有以下代码使用 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 会自动照顾它吗?- 我担心如果连接池超出限制,那么整个数据库可能会崩溃。

4

1 回答 1

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 !!");
    });
}
于 2012-10-21T07:36:12.843 回答