Mongoose: Esquema, matriz, valor padrão (o valor padrão "[]" não está funcionando)

Criado em 15 fev. 2011  ·  6Comentários  ·  Fonte: Automattic/mongoose

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

mongoose.connect('mongodb://localhost/dbTest');

var arrayTestSchema = new Schema({
    anArray: {
      type: Array,
      'default': []
    }
});

mongoose.model('ArrayTest', arrayTestSchema);
ArrayTest = mongoose.model('ArrayTest');

var myTest = new ArrayTest();
console.log(arrayTestSchema.anArray);

mongoose.connection.close();

exibe "indefinido"

Comentários muito úteis

Está falhando porque você não está acessando a instância do documento. Comentei seu console.log e o substituí pelo correto.

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

mongoose.connect('mongodb://localhost/dbTest');

var arrayTestSchema = new Schema({
    anArray: {
      type: Array,
      'default': []
    }
});

mongoose.model('ArrayTest', arrayTestSchema);
ArrayTest = mongoose.model('ArrayTest');

var myTest = new ArrayTest();
// console.log(arrayTestSchema.anArray);
console.log(myTest.anArray);

mongoose.connection.close();

Todos 6 comentários

Pelo menos no master, isso funciona bem para mim .. exceto que retorna um MongooseArray, então está cheio de muitas outras loucuras :) Não apenas o valor.

Qual versão você está executando?

var mangusto = requer ('mangusto');
var Schema = mangusto.Schema;

mongoose.connect ('mongodb: // localhost / dbTest');

var arrayTestSchema = new Schema ({

 Title: String,
 Description: String,
 Status: String

});

mongoose.model ('ArrayTest', arrayTestSchema);
ArrayTest = mongoose.model ('ArrayTest');

var myTest = new ArrayTest ();

myTest.Title = 'Projeto';
myTest.Description = 'using mongodb & node';
myTest.Status = 'aberto';

console.log (myTest);

mongoose.connection.close ();

Estou executando 1.0.12, versão npm.
Deve ser a versão master, pois vejo que o 1.0.12 foi lançado ontem.

Não entenda o que você deseja apontar pradeepthundiyil.

Está falhando porque você não está acessando a instância do documento. Comentei seu console.log e o substituí pelo correto.

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

mongoose.connect('mongodb://localhost/dbTest');

var arrayTestSchema = new Schema({
    anArray: {
      type: Array,
      'default': []
    }
});

mongoose.model('ArrayTest', arrayTestSchema);
ArrayTest = mongoose.model('ArrayTest');

var myTest = new ArrayTest();
// console.log(arrayTestSchema.anArray);
console.log(myTest.anArray);

mongoose.connection.close();

lol, ok, entendo, ontem foi um dia ruim para mim. Obrigado por apontar isso =)

@bnoguchi e quanto ao tipo de itens do array?

Esta página foi útil?
0 / 5 - 0 avaliações