2016-01-25 2 views
0

У меня есть коллекция в 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 там для тестирования, так как я не могу заставить его работать. У меня есть другие схемы, созданные в том же файле, которые используют один и тот же подход, и, похоже, они работают нормально. Может ли кто-нибудь сказать мне, что я здесь делаю неправильно?

+0

повторить попытку с простым 'find' с' RoomList. find (function (err, docs) {... ' –

+1

Не делает db.model (" Roomlist ") сделать коллекцию, которая выглядит так: 'roomlists' .. она делает это во множественном числе, но у вас есть' db. roomlist.find() '. (единственное) проверить свои коллекции –

+0

@jackblank - Мне не было известно о множественном выпуске. Я изменил коллекцию и протестировал ее, и она работает сейчас! Большое вам спасибо! Я знал, что это должно быть что-то простое :) Если вы создадите это как ответ, я приму –

ответ

1

Не делает db.model("Roomlist") коллекцию, которая выглядит так: «комнатные списки» .. Она делает это во множественном числе. Но у вас есть db.roomlist.find(). (Единственное) проверьте свои коллекции.

Вот link, что обсуждает добавление «с» в конце имени коллекции и предложение о том, как сделать коллекцию без «s»

+0

Еще раз спасибо. Все, что мне нужно было сделать, это добавить 's' в мое имя коллекции, и он отлично работает. Я очень ценю подсказку! –

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