【问题标题】:How to export across collection?如何跨集合导出?
【发布时间】:2021-08-18 11:36:33
【问题描述】:

我想跨集合导出信息。例如,我有 2 个集合 UserOrders。用户包含登录信息(用户名),订单包含订单 ID。所以当客户购买东西时,会在Orders集合中生成orderID,并将他们的userID(与用户名不同)记录在订单中。所以我必须引用 userID 才能在 User 集合中找到用户名。

我想将 orderID 与用户名一起导出。那可能吗?就目前而言,mongodb compass 只有在您选择了集合时才有导出按钮。

【问题讨论】:

    标签: mongodb mongodb-query mongodb-compass


    【解决方案1】:

    您可以使用 lookup 运算符在 orderID 旁边获取用户名。
    MongoDB Official Documentation for lookup operator

    【讨论】:

      【解决方案2】:

      例如你的用户集合是这样的 用户集合

      [{
      _id:123,
      username:example,
      }]
      

      订单集合

      [{
      _id:234
      userId : ObjectId('123')
      orderPrice : 300
      }]
      

      所以你可以像这样使用 $lookup 在用户对象中获得订单

      db.orders.aggregate([
      {
              '$lookup': {
                  'from': 'users', // users collection 
                  'localField': 'userId', 
                  'foreignField': '_id', 
                  'as': 'order'
              }
      ])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-05
        • 1970-01-01
        • 2012-06-30
        • 2013-08-30
        • 1970-01-01
        • 2011-10-12
        相关资源
        最近更新 更多