Я начинаю с mongodb и mongoose, но у меня возникают проблемы с запросом базы данных. В Интернете есть ряд обучающих программ, которые я пытаюсь сделать, но это, похоже, не работает для меня. Моя проблема в том, что функция .find() даже не вызывается и коллекция не отображается. У меня есть коллекция под названием Subjects, в которой я знаю, что есть некоторые значения (я вручную ввел их в командной строке mongodb). Я только пытался, включая соответствующий код, но дайте мне знать, если что-то еще нужно. Заранее спасибо.mongodb + mongoose: запрос не входит. Функция find
app.js файл
require('./models/model.js');
var conn = mongoose.createConnection('mongodb://localhost/test');
var Subject = mongoose.model('Subjects');
Subject.find({ }, function (err, subjects) {
if(err) console.log("Error"); // There is no "Error"
console.log("Made it"); // There is no "Made it"
console.log(subjects);
});
model.js файл
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var SubjectsSchema = new Schema ({
subject: { type: String }
});
module.exports = mongoose.model('Subjects', SubjectsSchema);
Спасибо. По соответствующей заметке я не видел никаких предметов. В командной строке mongo я набираю db.Subjects.find(), и я вижу, что я ввел. Однако, когда я вставляю новые данные 'var sub = new Subject ({subject: 'some subject'}); sub.save (function (err) {if (err) console.log (err);}); ' Я вижу выход. Что здесь происходит? – Szpok
Попробуйте 'mongoose.model ('Subjects', SubjectsSchema, 'Subjects'); вместо этого. Mongoose «помогает» в нижних регистрах и плюрализует имена моделей, чтобы получить имя коллекции, если вы не указали явное имя в вызове 'model'. – JohnnyHK
Ницца. Благодарю. Я проверил свой mongo db и, по-видимому, собрал «предметы», а также коллекцию «Предметы». – Szpok