Mongodb版本:MongoDB Shell版本v3.6.6
我有两个集合中的数据,如下所示:
{
"_id" : ObjectId("5b52dc2a9f5ac63b61186f45"),
"timestamp" : ISODate("2018-07-21T07:09:30.575Z"),
"UserEvent" : "User disconnected user_id=5b522eda9f5ac65b111c72fb",
"Event" : "User disconnected ",
"UserId" : "5b522eda9f5ac65b111c72fb"
}
{
"_id" : ObjectId("5b522eda9f5ac65b111c72fb"),
"name" : "som",
"role" : "1"
}
我需要结果为:
{
"_id" : ObjectId("5b52dc2a9f5ac63b61186f45"),
"timestamp" : ISODate("2018-07-21T07:09:30.575Z"),
"UserEvent" : "User disconnected user_id=5b522eda9f5ac65b111c72fb",
"Event" : "User disconnected ",
"UserId" : "5b522eda9f5ac65b111c72fb",
"name" : "som"
}
请注意,用户集合中的元素名称。
我以几种方式使用$ lookup组合,但由于_id和字符串UserId加入问题而无法产生结果。如果能得到任何帮助,我将不胜感激。 基本上,我想完成一个简单的连接,如下所示:
Select e.*, u.name
from event e,
users u
where e.UserId = u._id
注意:e.UserId仅具有类似于“ 5b522eda9f5ac65b111c72fb”的字符串,但u._id具有ObjectId(“ 5b522eda9f5ac65b111c72fb”)