Mongodb$lookup不返回值



我正在使用带有节点(mongoose(的mongodb。我有几个类似下面的问题。

db.Private.aggregate([
{
$lookup: {
from: 'users',
localField: 'recipients',
foreignField: '_id',
as: 'recipientObj',
},
},
])

上面的那个很好用。但是下面的查询没有。

db.Global.aggregate([
{
$lookup: {
from: 'users',
localField: 'from',
foreignField: '_id',
as: 'fromObj'
}
}
])

虽然我得到了结果,但它并没有给出聚合。

示例数据如下:

用户->{ "_id" : ObjectId("5f9c31236921c3001866d811"), "number" : "22", "username" : "Abraham", "name" : "Abraham Kiprop Lagat" }

全局->{ "_id" : ObjectId("5f9ff4d27f166700117f40d4"), "from" : "5f9c31236921c3001866d811", "body" : "this is global from 22", "date" : "1604318418952", "__v" : 0 }

可能是什么问题?

发现数据类型不匹配,似乎ObjectId被保存为字符串。必须使用mongoose.Types.ObjectId(jwtUser.id)将其转换为ObjectId。工作非常完美。

最新更新