Mongoose find-by-reference什么都不返回

时间:2014-02-13 10:00:43

标签: node.js mongodb mongoose

这是来自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输出是一个空数组 - 为什么?

2 个答案:

答案 0 :(得分:1)

看看猫鼬人口。在这种情况下,最好使用此功能。 http://mongoosejs.com/docs/populate.html

答案 1 :(得分:1)

您要求的项目由用户52f **c9720b85bac3c1a** 000002创建。 您的数据库摘录似乎包含用户52f **20518b66ae3622c** 000002

的项目

您是否尝试使用正确的ID?