相关疑难解决方法(0)

如何在MongoDB中执行SQL Join等效项?

如何在MongoDB中执行SQL Join等效项?

例如,假设你有两个集合(用户和评论),我想用pid = 444以及每个集合的用户信息来提取所有评论.

comments
  { uid:12345, pid:444, comment="blah" }
  { uid:12345, pid:888, comment="asdf" }
  { uid:99999, pid:444, comment="qwer" }

users
  { uid:12345, name:"john" }
  { uid:99999, name:"mia"  }
Run Code Online (Sandbox Code Playgroud)

有没有办法用一个字段拉出所有评论(例如......查找({pid:444}))以及与每个评论相关的用户信息?

目前,我首先得到符合我标准的评论,然后找出该结果集中的所有uid,获取用户对象,并将它们与评论的结果合并.好像我做错了.

join mongodb

471
推荐指数
12
解决办法
32万
查看次数

如何在mongodb中使用$ lookup连接多个集合

我想使用聚合$ lookup在MongoDB中加入两个以上的集合.有可能加入吗?给我一些例子.

这里我有三个集合:

"用户"

{    
"_id" : ObjectId("5684f3c454b1fd6926c324fd"),
    "email" : "admin@gmail.com",
    "userId" : "AD",
    "userName" : "admin"
}
Run Code Online (Sandbox Code Playgroud)

"用户信息"

{
    "_id" : ObjectId("56d82612b63f1c31cf906003"),
    "userId" : "AD",
    "phone" : "0000000000"
}
Run Code Online (Sandbox Code Playgroud)

"UserRole的"

{
    "_id" : ObjectId("56d82612b63f1c31cf906003"),
    "userId" : "AD",
    "role" : "admin"
}
Run Code Online (Sandbox Code Playgroud)

mongodb-query

52
推荐指数
4
解决办法
8万
查看次数

mongoDB 连接多个字段

我正在将 SQL 查询重写为 mongoDB。有人可以帮助我们如何使用多个连接键和条件连接两个集合,如下面的 SQL 查询所示。

SELECT S.* FROM LeftTable S
LEFT JOIN RightTable R ON S.ID =R.ID AND S.MID =R.MID WHERE R.TIM >0 AND S.MOB IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

我有下面的代码,它使用单连接键条件。如果有人可以帮助使用多个连接键和 where 子句来完成查询,我将很高兴。

db.dim.aggregate([{$lookup:{from:"dimFactsVer11",localField:"Sub", foreignField:"Type", as:"EmbedUp"}}])
Run Code Online (Sandbox Code Playgroud)

mongodb

3
推荐指数
1
解决办法
2万
查看次数

如何连接同一文档中的数组?

我想使用两个数组的 ID 将数据合并到一个集合中。

一个例子如下所示。

{
    "_id": ObjectId ("5976fd2eb0adec0a32fa9831"),
       "People": [
          {
            "_id": 1,      <--- ID
            "Name": "jane"
          },
          {
            "_id": 2,      <--- ID
            "Name": "Mark"
          }
       ],
       "Contents": [
          {
            "userID":  2,   <--- People ID
            "Text": "111"
          },
          {
            "userID":  1,   <--- People ID
            "Text": "Hi"
          }
       ]
}
Run Code Online (Sandbox Code Playgroud)

我想制作上述文件如下。

{
    "_id": ObjectId ("5976fd2eb0adec0a32fa9831"),
    "People": [
       {
          "_id": 1,
          "Name" : "Jane"
       },
       {
          "_id": 2,
          "Name": "Mark"
       }
    ],
    "Contents": [
       {
          "userID": 2,
          "Name": "Mark",    <-- Adding
          "Text": …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql mongodb-query aggregation-framework

3
推荐指数
1
解决办法
1209
查看次数

mongodb加入多个集合

我想使用mongochef在MongoDB中“加入” 3个集合。集合是“订单”,“员工”和“城市”。我尝试使用临时集合,但是它无效。现在,我将var = a用于第一个“ join”。

如果我想显示“ a”,则仅显示20个结果。您有想法或其他解决方案吗?

        var a = db.Order.aggregate([
    { 


      $lookup: 
      {
        from: "City",
        localField: "City Key",
        foreignField: "City Key",
        as: "lsg"
      }
    },
    {
        $unwind: "$lsg"
    },
    {
        $project: 
        {
            "_id":1,
            "Salesperson Key":1,
            "City": "$lsg.City"
        }
    }

    ])

    a;

var b = db.Employee.aggregate([
{ 


  $lookup: 
  {
    from: "a",
    localField: "Employee Key",
    foreignField: "Salesperson Key",
    as: "lsg2"
  }
},
{
    $unwind: "$lsg2"
},
{
    $project: 
    {
        "_id":1,
        "Employee":1
    }
}

])
Run Code Online (Sandbox Code Playgroud)

预先感谢您的答复。

lookup join var mongodb mongodb-query

1
推荐指数
1
解决办法
6284
查看次数