У меня есть коллекция в mongoDB, называемая «roomlist». Используя командную строку, я могу запустить db.roomlist.find()
и вернет правильные данные. Пример:MongoDB find() возвращается пустым с использованием mongoose - node.js
> db.roomlist.find()
{ "_id" : ObjectId("56a5d3b07bf609f092e7f9ab"), "name" : "Lobby", "type" : "public", "lock" : 0, "owner" : "Mike", "invites" : "all", "__v" : 0 }
Однако, в моем приложении node.js оно просто возвращает пустое. Если я утешаю войти выход, я получаю:
[]
Вот что я использую:
Моя схема выглядит следующим образом:
RoomSchema = new Schema({
name: String,
type: String,
lock: String,
owner: String,
invites: String, created: {
type: Date,
default: Date.now
}
});
А потом я определяю RoomList следующим образом:
var Roomlist = db.model('Roomlist', RoomSchema);
Я пытаюсь получить список всех «комнат» в коллекции и отправить его как объект одному из моих представлений. Вот что у меня есть для этого:
Roomlist.find({},{}, function(err, docs) {
if(err) throw err;
res.render('index.ejs',{
"roomlist": docs,
csrfToken: req.csrfToken()
});
console.log(docs);
});
У меня есть console.log там для тестирования, так как я не могу заставить его работать. У меня есть другие схемы, созданные в том же файле, которые используют один и тот же подход, и, похоже, они работают нормально. Может ли кто-нибудь сказать мне, что я здесь делаю неправильно?
повторить попытку с простым 'find' с' RoomList. find (function (err, docs) {... ' –
Не делает db.model (" Roomlist ") сделать коллекцию, которая выглядит так: 'roomlists' .. она делает это во множественном числе, но у вас есть' db. roomlist.find() '. (единственное) проверить свои коллекции –
@jackblank - Мне не было известно о множественном выпуске. Я изменил коллекцию и протестировал ее, и она работает сейчас! Большое вам спасибо! Я знал, что это должно быть что-то простое :) Если вы создадите это как ответ, я приму –