MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Sử dụng $ lookup trong một mảng đối tượng

Bạn có thể làm điều đó với một cái gì đó như thế này trong MongoDB 3.2 giả sử bộ sưu tập có các chi tiết là video.details và trường bạn đang tham gia bên trái là _id :

[  
   {  
      $unwind:"$videos"
   },
   {  
      $lookup:{  
         from:"video.details",
         localField:"videos.videoId",
         foreignField:"_id",
         as:"details"
      }
   },
   {  
      $group:{  
         _id:"$_id",
         name:{  
            $first:"$name"
         },
         videos:{  
            $push:{  
               videoId:"$videos.videoId",
               videoDetails:"$details"
            }
         }
      }
   }
]

Vì vậy, về cơ bản bạn thực hiện tra cứu nhưng sau đó trong giai đoạn nhóm $ xây dựng đầu ra theo cách bạn muốn. bạn có thể không cần giai đoạn $ unwind đầu tiên nếu bạn đang sử dụng MongoDB 3.3.4 trở lên (trước đó $ lookup trên mảng không được phép).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ember-data và MongoDB, cách xử lý _id

  2. pymongo - Độ dài tin nhắn lớn hơn kích thước tin nhắn tối đa của máy chủ

  3. Không thể kết nối Mongo shell với Mongo Atlas M0 bằng mongodb + srv

  4. Dấu chấm hỏi Biến kiểu chỉ số

  5. Tổng hợp Mongodb theo Ngày rồi Giờ