2015-07-24 10 views
5

Mam następujący w server.js:Mongoose nie tworzy nową kolekcję

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

i model podobny do tego, który działa w porządku! :

var userSchema = new Schema({ 
    firstName: { type: String, trim: true, required: true }, 
    lastName: {type: String, trim: true, required: true}, 
    cellPhoneNumber : {type: Number, unique: true}, 
    email: { type: String, unique: true, lowercase: true, trim: true }, 
    password: String 
    }); 

i jest inny model, jak poniżej, który nie działa!

var jobSchema = new Schema({ 
category: {type: Number, required: true}, 
title: {type: String, required: true}, 
tags: [String], 
longDesc: String, 
startedDate: Date, 
views: Number, 
report: Boolean, 
reportCounter: Number, 
status: String, 
poster: String, 
lastModifiedInDate: Date, 
verified: Boolean 
}); 

dwa var są następujące:

var User = mongoose.model('User', userSchema); 
var Job = mongoose.model('Job', jobSchema); 

- mongod nie rejestruje żadnych błędów po server.js jest podłączony do niego. Czy ktoś wie, co jest nie tak z moim drugim modelem?

Odpowiedz

11

Mongoose nie tworzy kolekcji jobs dla modelu, dopóki nie zostanie zapisany pierwszy dokument tego modelu.

Job.create({category: 1, title: 'Minion"}, function(err, doc) { 
    // At this point the jobs collection is created. 
}); 
+1

Sprawdź poniżej swoją odpowiedź, ta odpowiedź jest poprawna tylko wtedy, gdy model nie ma indeksów. – matsondawson

12

Powód jest taki, że mangusta automatycznie tworzy kolekcje podczas uruchamiania, które zawierają indeksy. Kolekcja użytkownika ma unikatowy indeks, kolekcja Job nie. Właśnie miałem ten sam problem dzisiaj.

// example code to test 
var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

mongoose.model('Test', { 
    author: { 
    type: String, 
    index: true 
    } 
}); 
+0

Nie sądzę, że powinno być. Mongoose nigdy nie tworzy żadnej kolekcji, dopóki nie zapiszesz/nie utworzysz żadnego dokumentu. –

+4

Dzięki za upadek, ale się mylisz. Sprawdź to sam. Przebyte dzisiaj z mangustą 4.2.4. Tworzy kolekcję _if_, w której kolekcja ma indeks. – matsondawson

+0

Tak, to działa dla mnie, jeśli kolekcja ma indeks w nim –