Mongodb查询本地&;中字符串id的$lookup_外文表中的id

Mongodb查询本地&;中字符串id的$lookup_外文表中的id,mongodb,Mongodb,Mongodb版本:Mongodb外壳版本3.6.6 我收集了两组数据,如下所示: 收集事件: { “_id”:ObjectId(“5b52dc2a9f5ac63b61186f45”), “时间戳”:ISODate(“2018-07-21T07:09:30.575Z”), “UserEvent”:“用户断开连接的用户id=5b522eda9f5ac65b111c72fb”, “事件”:“用户已断开连接”, “用户ID”:“5b522eda9f5ac65b111c72fb” } 收集用户:

Mongodb版本:Mongodb外壳版本3.6.6

我收集了两组数据,如下所示:

  • 收集事件:
    
    {
    “_id”:ObjectId(“5b52dc2a9f5ac63b61186f45”),
    “时间戳”:ISODate(“2018-07-21T07:09:30.575Z”),
    “UserEvent”:“用户断开连接的用户id=5b522eda9f5ac65b111c72fb”,
    “事件”:“用户已断开连接”,
    “用户ID”:“5b522eda9f5ac65b111c72fb”
    }
    
  • 收集用户:
    
    {
    “_id”:ObjectId(“5b522eda9f5ac65b111c72fb”),
    “名称”:“som”,
    “角色”:“1”
    }
    
    我需要的结果如下:
    
    {
    “_id”:ObjectId(“5b52dc2a9f5ac63b61186f45”),
    “时间戳”:ISODate(“2018-07-21T07:09:30.575Z”),
    “UserEvent”:“用户断开连接的用户id=5b522eda9f5ac65b111c72fb”,
    “事件”:“用户已断开连接”,
    “用户ID”:“5b522eda9f5ac65b111c72fb”,
    “名称”:“som”
    }
    
    请注意,用户集合中的元素名称。 我使用了$lookup组合的几种方法,但由于我认为存在_id和字符串UserId连接问题,因此没有产生结果。如果我能得到任何帮助,我将不胜感激 基本上,我想完成一个简单的连接,如下所示:
    
    选择e.*,u.name
    从事件e,
    用户u
    其中e.UserId=u.\u id

    注意:e.UserId只有类似于“5b522eda9f5ac65b111c72fb”的字符串,但u.id有ObjectId(“5b522eda9f5ac65b111c72fb”)

    您可以在4.0中使用它,但您最好将
    UserId
    作为ObjectId存储在事件集合中,不管它是否更有效。谢谢Johnny!我试过使用所有这些函数,但都不起作用。实际上我使用的是mongodb 3.6,那里不支持$toObjectId&toString()。在我升级到4.0之后,现在瞧,一切都很棒。谢谢你的回复。