首页 > 解决方案 > Mongo 查找加入子/子对象?

问题描述

我正在加入预订和客户收藏。我的预订对象如下所示:

   {
      "bookingID": 1,
      "customerID": "adam.apple@email.com",
      "room": [
         {
            "roomID": "JDS",
            "numRooms": 1
         }
      ]
   }

和这样的客户对象:

  {
     "customer": {
        "firstname": "Adam",
        "surname": "Apple",
        "title": "Nr.",
        "emailAddress": "adam.apple@email.com"
     },
     "address": {
        "street": "221B Baker St",
        "city": "London",
        "state": null,
        "zipcode": "NW1 6XE",
        "country": "UK"
     }
  }

我正在使用这段代码:

      { $lookup: {from: 'customers', localField: 'customerID', foreignField: 'customer.emailAddress', as: 'traveller'} },
      { $unwind: '$traveller' },
      { $project: {'traveller': {_id: 0, 'address': 0}} }

组合输出。我想得到:

            "traveller": {
                "firstname": "Adam",
                "surname": "Apple",
                "title": "Nr.",
                "emailAddress": "adam.apple@email.com"
            }

我得到:

        "traveller": {
            "customer": {
                "firstname": "Adam",
                "surname": "Apple",
                "title": "Nr.",
                "emailAddress": "adam.apple@email.com"
            }
        }

我该怎么做呢?

你可以在这里查看: https ://mongoplayground.net/p/ik2UtP4-EHa

标签: mongodb

解决方案


干得好 :-

只需更改项目阶段如下 -

  {
    $project: {
      "traveller": "$traveller.customer",
      "bookingID": 1,
      "cruise": 1,
      "customerID": 1,
      "room": 1
    }
  }

蒙戈游乐场


推荐阅读