mongoosefind引用不会返回任何内容

这是来自mongo客户端的数据:

> db.projects.find({ })[1]; { "name" : "App 276", "slug" : "app276", "createdByUser" : ObjectId("52f20518b66ae3622c000002"), "_id" : ObjectId("52fc91f508e3507c19000002"), "screens" : [ ], "dateUpdated" : ISODate("2014-02-13T09:34:23.102Z"), "dateCreated" : ISODate("2014-02-13T09:34:23.102Z"), "__v" : 0 } 

这是我的服务器代码:

 /** List Projects */ exports.list = function(req, res) { console.log('list', mongoose.Types.ObjectId(req.params.userId)); return Project.find({ createdByUser: mongoose.Types.ObjectId(req.params.userId) }, function (err, projects) { if (!err) { return res.json(projects); } else { return res.send(err); } }); }; 

这是我的服务器输出:

 list 52fc9720b85bac3c1a000002 GET /api/projects 200 42ms - 2b 

JSON输出是一个空数组 – 为什么?

您请求的项目由用户52f **c9720b85bac3c1a** 000002 。 您的数据库提取似乎包含用户52f **20518b66ae3622c** 000002

你有没有尝试过正确的ID?

看看mongoose人口。 在这种情况下最好使用这个function。 http://mongoosejs.com/docs/populate.html