Mongodb查询本地&;中字符串id的$lookup_外文表中的id
Mongodb版本:Mongodb外壳版本3.6.6 我收集了两组数据,如下所示: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” } 收集用户:
{
“_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之后,现在瞧,一切都很棒。谢谢你的回复。