2015-07-24 10 views
5

я следующий server.js:Mongoose не создает новую коллекцию

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

и модель, как этот, который прекрасно работает! :

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 
    }); 

и есть еще одна модель, как показано ниже, которая не работает!

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 
}); 

два вар являются следующие:

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

- mongod не регистрирует любую ошибку после того, как server.js подключен к нему. Кто-нибудь знает, что случилось с моей второй моделью?

ответ

11

Mongoose не будет создавать коллекцию jobs для модели до тех пор, пока не будет сохранен первый документ этой модели.

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

Проверьте мой ответ ниже, этот ответ верен только в том случае, если модель не имеет индексов. – matsondawson

12

Причина заключается в том, что mongoose только автоматически создает коллекции при запуске с индексами в них. В вашей коллекции пользователей есть уникальный индекс, в коллекции работ нет. Сегодня у меня была такая же проблема.

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

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

Я не думаю, что это должно быть. Mongoose никогда не создает коллекцию, пока вы не сохраните/не создадите какой-либо документ. –

+4

Спасибо за нижний план, но вы ошибаетесь. Испытай сам. Обновлен сегодня с мангуста 4.2.4. Он создает коллекцию _if_, в коллекции есть индекс. – matsondawson

+0

Да, это работает для меня, если в коллекции есть индекс в нем –

Смежные вопросы