为什么我不能增加mongoose / mongodb?

时间:2015-11-10 05:41:10

标签: javascript node.js mongodb mongoose

我试图增加,但结果总是表明它是未定义的。

var mongoose = require('mongoose');

var TestSchema = mongoose.Schema({

    total: Number


});

var Test = mongoose.model('Test', TestSchema);

var arr = [2,4,5,6,7,8];
var test = new Test();

arr.forEach(function(item) {
    console.log(item);
    test.total += item;
});

console.log(test.total);

console.log(test.total)将打印输出undefined。

1 个答案:

答案 0 :(得分:1)

它不起作用,因为“total”未定义为开头。所以改为定义:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var testSchema = new Schema({
  total: Number
});

var Test = mongoose.model( 'Test', testSchema );

var arr = [2,4,5,6,7,8];

var test = new Test({ "total": 0 });

arr.forEach(function(item) {
  console.log(item);
  test.total += item;
});

console.log(test);

输出:

2
4
5
6
7
8
{ _id: 5641850e7a8c9b001842c6d2, total: 32 }

就像它应该的那样。

或者,至少提供一个架构默认值。

var testSchema = new Schema({
  total: { type: Number, default: 0 }
});

但如果没有,那么值为undefined并尝试增加未定义的值只会返回结果中的任何内容。