mongoose回调不是一个数组

时间:2016-08-07 15:48:39

标签: node.js mongodb express mongoose

在我的模特中我有这个

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 个答案:

答案 0 :(得分:2)

result是单个文档而不是数组,因为您正在调用findOne,而不是find

要获取所有用户的照片文档,请将您的方法更改为:

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

答案 1 :(得分:0)

findone 返回一个满足指定查询条件的文档(JSON)

find 返回对象数组。