为什么我的mongdb $ lookup不起作用?

时间:2016-12-01 10:10:33

标签: mongodb lookup

我正在尝试在_id字段的两个集合之间进行$查找。它总是给我一个空的对象。

这与Mongodb $lookup Not working with _id

完全相同

但我已经实施了他的解决方案。它知道类型coertion,我的id字段是完全相同的类型:Schema.ObjectId

这是我的会话集合:

var sessionSchema = new Schema({
    user        : { type: mongoose.Schema.ObjectId, ref: 'User' },
    startDate   : Date,
    endDate     : Date
});

和请求:

db.sessions.aggregate([{$project: {user:1}}, { $lookup : { from: "User", localField: "user", foreignField: "_id", as: "u" }} ]);

和结果:

{ "_id" : ObjectId("5697d6c810ad24b91b130df2"), "user" : ObjectId("5697d6c210ad24b91b130df1"), "u" : [ ] }
{ "_id" : ObjectId("5697d6d810ad24b91b130df3"), "user" : ObjectId("5697d6c210ad24b91b130df1"), "u" : [ ] }
{ "_id" : ObjectId("5697d70410ad24b91b130df4"), "user" : ObjectId("5697d6c210ad24b91b130df1"), "u" : [ ] }
{ "_id" : ObjectId("5697d71310ad24b91b130df5"), "user" : ObjectId("5697d6c210ad24b91b130df1"), "u" : [ ] }
{ "_id" : ObjectId("5697d71c10ad24b91b130df6"), "user" : ObjectId("5697d6c210ad24b91b130df1"), "u" : [ ] }

我认为提及我的用户集合并不合适,因为只有有趣的字段是_id

必须遗漏一个明显的东西,因为我不是蒙古专家,我找不到它。

1 个答案:

答案 0 :(得分:0)

我没有提到我使用的是Mongoose。

当您创建集合时,Mongoose会自动创建相对表with the plural mode.

所以我的错误是引用from: "user"而不是from: "users"