关闭mongoose db连接会删除架构

时间:2014-10-30 16:06:07

标签: javascript node.js mongoose

我的mongoose有一个奇怪的行为,似乎在保存我的模式后关闭数据库连接会删除它。

这是我的架构brand.js:

var brandSchema = new db.Schema({

  id: {type: String, required: true, index: {unique: true}},
  products: [String]
});

我执行以下脚本来填充我的数据库(重要的精度:在执行脚本之前,我的品牌表没有在数据库中定义):

var async = require('async');

//Get config
var middlewares = require('./middlewares');
var config = require('./config');

//Load model
require('./models/brand');
var db = middlewares.db(config);


// Load brand.json
var brands = require('./brands.json');


// Save each brand in the database
async.each(Object.keys(brands), function(brandId, callback){

  var brand = new Brand({id:  brandId, products: brands[brandsId]);

  brand.save(function(err){
    if(err) console.log(err);
    else console.log('brand ' + brand.id + ' added');
      callback();
  });

}, function(){
  //Properly close the connection so the script can terminate
  db.connection.close();
});

此脚本提供以下日志:

Mongoose: brand.ensureIndex({ id: 1 }) { safe: undefined, background: true, uni
que: true }
Mongoose: brand.insert({ __v: 0, products: [ 'phone', 'tv'], _id: ObjectId(
"54524f612245da0c2f0d2ba7"), id: 'samsung' }) {}
Mongoose: brand.insert({ __v: 0, products: [ 'food', 'beverages' ], _id: ObjectId(
"54524f612245da0c2f0d2ba8"), id: '' }) {}

日志的第一行表明使用正确的参数创建了索引ID。但是当我查看数据库时,我的品牌已经保存,但品牌架构是空的。但是,如果我删除了db.connection.close(),则仍会保存品牌,并保存架构,如Brand中所定义。

我真的不明白为什么。可能是因为没有发送到db的缓冲数据吗?

0 个答案:

没有答案