2016-08-07 2 views
0

В моей модели у меня есть этамангуст обратного вызова не является массивом

module.exports.getPhotosById = function(userId,callback){ 
    Photos.findOne({userId:userId},callback); 
} 

Тогда в пути я

Photo.getPhotosById(req.user._id,function(err,result){ 

    console.log(result); 
    console.log(result.length); 
    }); 

Первый выход консоли это

{ _id: 325657865435643245, 
    userId: '32443564', 
    photo: 'abc.jpg', 
    caption: 'abc' 
} 

, но почему это не массив? потому что вывод второй консоли - undefined.

ответ

2

result - это единый документ вместо массива, потому что вы вызываете findOne, а не find.

Чтобы получить все пользователя фото документы, изменить свой метод:

module.exports.getPhotosById = function(userId, callback){ 
    Photos.find({userId: userId}, callback); 
} 
+0

aw, какая небрежная ошибка я сделал, спасибо! –

0

findone возвращает один документ (JSON), которая удовлетворяет заданным критериям запроса

найти Возвращает массив объектов.

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