mongodb查找聚合查询

mongodb查找聚合查询,mongodb,aggregation-framework,lookup,Mongodb,Aggregation Framework,Lookup,在mongodb中运行此查询时出现问题 db.user.aggregate([ { $lookup: { from: 'role', localField: 'Role_id', foreignField: '_id', as: 'role' } }, { $lookup: { from: 'location', localField: 'Location_id'

在mongodb中运行此查询时出现问题

db.user.aggregate([
      {
   $lookup:
     {
       from: 'role',
       localField: 'Role_id',
       foreignField: '_id',
       as: 'role'
     }
},
{
 $lookup:
     {
       from: 'location',
       localField: 'Location_id',
       foreignField: '_id',
       as: 'location'
     }   
 }
])
藏品如下

//位置集合

{
    "_id" : ObjectId("58b9b9b95565ef59ac1bcc99"),
    "locationcode" : "L001",
    "locationname" : "Pune"
}
{
    "_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
    "rolename" : "SuperAdmin"
}
//角色集合

{
    "_id" : ObjectId("58b9b9b95565ef59ac1bcc99"),
    "locationcode" : "L001",
    "locationname" : "Pune"
}
{
    "_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
    "rolename" : "SuperAdmin"
}
//用户集合:

{
    "_id" : ObjectId("58b9bad55565ef59ac1bcd04"),
    "LoginId" : "Sylvester_M001",
    "Password" : "123456",
    "Name" : "Sylvester",
    "EmployeeId" : "M001",
    "Role_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
    "Location_id" : ObjectId("58b9b9b95565ef59ac1bcc99")
}
{
    "_id" : ObjectId("58b9bad55565ef59ac1bcd04"),
    "LoginId" : "Sylvester_M001",
    "Password" : "123456",
    "Name" : "Sylvester",
    "EmployeeId" : "M001",
    "Role_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
    "Location_id" : ObjectId("58b9b9b95565ef59ac1bcc99"),
    "role" : [ 
        {
            "_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
            "rolename" : "SuperAdmin"
        }
    ],
    "location" : [ 
        {
            "_id" : ObjectId("58b9b9b95565ef59ac1bcc99"),
            "locationcode" : "L001",
            "locationname" : "Pune"
        }
    ]
}
当我运行聚合查找以加入我得到的三个集合时

//结果收集:

{
    "_id" : ObjectId("58b9bad55565ef59ac1bcd04"),
    "LoginId" : "Sylvester_M001",
    "Password" : "123456",
    "Name" : "Sylvester",
    "EmployeeId" : "M001",
    "Role_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
    "Location_id" : ObjectId("58b9b9b95565ef59ac1bcc99")
}
{
    "_id" : ObjectId("58b9bad55565ef59ac1bcd04"),
    "LoginId" : "Sylvester_M001",
    "Password" : "123456",
    "Name" : "Sylvester",
    "EmployeeId" : "M001",
    "Role_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
    "Location_id" : ObjectId("58b9b9b95565ef59ac1bcc99"),
    "role" : [ 
        {
            "_id" : ObjectId("58b9b8ef5565ef59ac1bcc49"),
            "rolename" : "SuperAdmin"
        }
    ],
    "location" : [ 
        {
            "_id" : ObjectId("58b9b9b95565ef59ac1bcc99"),
            "locationcode" : "L001",
            "locationname" : "Pune"
        }
    ]
}
但几秒钟后,它变为

{
"$err":"Invalid ns[]",
"code":73
}

为什么会发生这种情况?有没有关于我错在哪里的澄清?是什么触发了这种情况?

无法模拟您的错误。我使用了与上面相同的代码,得到了正确的响应。我在mongo shell上执行了这个。您是从哪里执行此操作的?是否可以编写mongoose脚本来获取聚合数据?